Проверка надстройки для объекта с динамическими полямиJavascript

Форум по Javascript
Anonymous
Проверка надстройки для объекта с динамическими полями

Сообщение Anonymous »

В настоящее время я использую SuperStruct для ввода и проверки объекта. Этот объект возвращается через API, а затем проверяется и введите отлив с использованием структуры SuperStruct. Полем Там может быть произвольное количество этих произвольных полей, но они всегда имеют одинаковую структуру. < /P>

Код: Выделить всё

{
parent:
{
thisFieldIsAlwaysHere: number;
arbitraryObject1: { body: number; };
arbitraryObject2: { body: number; };
arbitraryObject3: { body: number; };
}
}
< /code>
Для этого я использую структуру с записью со строкой для имени и объектом для тела каждого из них, которые одинаковы, как SO < /p>
const Struct = type({
parent: record(string(), type({ body: number() }))
})
< /code>
Это нормально с типами типов при использовании вывода. Но мой объект не может быть подтвержден из -за этого AwerfitisalWayShere 
, который является номером, а не объектом. Включение этого FieldisalWayShere использование перекрестка не помогает. Похоже, запись применяется к каждому полю. < /P>

Код: Выделить всё

const Struct = type({
parent: intersection([
type({ thisFieldIsAlwaysHere: number()),
record(string(), type({ body: number() }))
])
})
< /code>
Есть ли способ заставить это работать элегантно? Я пытался использовать Dynamic 
. Мне было интересно, есть ли способ исключить определенные имена поля из записи? Или потенциально уступит другие поля в типе

Подробнее здесь: https://stackoverflow.com/questions/794 ... mic-fields

Вернуться в «Javascript»