Проверка надстройки для объекта с динамическими полями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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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