FormSchemaNode
Defined in: core/types/schema-node.ts:77
Узел единой схемы M1 — дерево, обходимое createForm({ model, schema }),
validateModel/validateFormModel и рендерерами.
Узел совмещает несколько ролей (различаются рантаймом по форме):
- поле — несёт
value: Signal(сигнал моделиmodel.$.x) +component/validators; - массив —
{ array: model.<path>, item(itemModel) }; - контейнер/ветка — вложенные узлы (
children), опц. условиеwhen; - record-of-fields — под-узлы под произвольными именованными ключами (индексная сигнатура).
Индексная сигнатура ([key: string]: unknown) отражает свободный рекурсивный обход: под-узлы
допустимы под любым ключом. Известные поля типизированы (даёт автокомплит и проверку их типов).
Indexable
[key: string]: unknown
Свободная вложенность: record-of-fields и произвольные под-узлы.
Properties
array?
optional array: SchemaArrayControl;
Defined in: core/types/schema-node.ts:102
Реактивный массив модели (model.<path>) — маркер узла-массива (вместе с item).
asyncValidators?
optional asyncValidators: SchemaValidator[];
Defined in: core/types/schema-node.ts:89
children?
optional children: readonly FormSchemaNode[];
Defined in: core/types/schema-node.ts:98
Дочерние узлы (даёт контекстную типизацию вложенным литералам — value/validators/when).
component?
optional component: ComponentType<any>;
Defined in: core/types/schema-node.ts:85
UI-компонент. Опционален: core-часть работает без UI (значение/валидация).
componentProps?
optional componentProps: Record<string, unknown>;
Defined in: core/types/schema-node.ts:87
Props компонента. Также «клапан» для вложенности под-узлов (напр. steps визарда).
debounce?
optional debounce: number;
Defined in: core/types/schema-node.ts:93
Задержка (мс) перед запуском асинхронной валидации.
disabled?
optional disabled: boolean;
Defined in: core/types/schema-node.ts:91
initialValue?
optional initialValue: unknown;
Defined in: core/types/schema-node.ts:110
Значение нового элемента массива для кнопки «Добавить»: либо готовое значение,
либо фабрика () => value. Тип не различает варианты (union unknown | (() => unknown)
схлопывается в unknown) — рантайм различает по typeof initialValue === 'function'.
item()?
optional item: (itemModel) => FormSchemaNode;
Defined in: core/types/schema-node.ts:104
Схема элемента массива: под-модель элемента → узел поддерева.
Parameters
itemModel
any
Returns
FormSchemaNode
selector?
optional selector: string;
Defined in: core/types/schema-node.ts:95
Идентификатор узла (для wizard/tabs/renderBehavior).
testId?
optional testId: string;
Defined in: core/types/schema-node.ts:96
updateOn?
optional updateOn: "change" | "blur" | "submit";
Defined in: core/types/schema-node.ts:90
validators?
optional validators: SchemaValidator[];
Defined in: core/types/schema-node.ts:88
value?
optional value: unknown;
Defined in: core/types/schema-node.ts:83
«Ручка» значения поля — маркер узла-поля. Обычно сигнал модели (model.$.<path>), но форма
зависит от таргета (для массива model.$.x — дерево сигналов; в renderer-типах сужается до
Signal). Движок разбирает узел как поле рантаймом по value instanceof Signal.
when()?
optional when: (scope, root) => boolean;
Defined in: core/types/schema-node.ts:100
Условие включения поддерева (branch-узел { when, children }).
Parameters
scope
any
root
any
Returns
boolean