FTS — исполняемые спецификации Структуры и типы FTS: форма предметных данных
0%

Структуры и типы FTS: форма предметных данных

Структуры и типы FTS: форма предметных данных

Структура описывает только наблюдаемые поля. Она не является классом и не содержит поведения.

категория «Счета»

  структура «Строка счёта»
    номер является строкой
    сумма является деньгами
    «срок оплаты» является датой
    просрочен является признаком
    комментарий иногда является строкой

Встроенные типы

FTS Канонический тип JavaScript
является строкой Строка string
является числом Число number
является датой Дата ISO-строка на границе
является деньгами Деньги конечное number в текущем runtime
является признаком Признак boolean
иногда является … T | undefined поле может отсутствовать

Деньги сейчас представлены конечным числом. Для валютной точности production- приложение должно заранее выбрать minor units или decimal-адаптер; FTS не исправляет IEEE 754 магически.

Состояние не является вложенной структурой

объект Заказ
  «готов к отгрузке» является состоянием «Готов к отгрузке»

Здесь «Готов к отгрузке» — тип свидетельства. Если у заказа действительно есть составной адрес, используйте вложенность:

объект Заказ
  вложен объект «Адрес доставки»

Во что превращается структура

compile(source) возвращает массив structures. Адаптер может превратить поля в UI без повторного перечисления:

const controls = document.structures
  .find(({ name }) => name === "Строка счёта")
  .fields.map((field) => ({
    name: field.name,
    required: !field.type.includes("undefined"),
    control: field.type === "Признак" ? "checkbox" : "text",
  }))

Это не означает, что FTS знает весь дизайн формы. Layout, подсказки, async- валидация и доступность остаются ответственностью UI-компонента. FTS устраняет дублирование имён, типов и обязательности.

Упражнение

Опишите объект из своей системы с пятью полями. Скомпилируйте его и создайте два адаптера: список form controls и список table columns. Оба должны читать один FtsDocument, а не исходный текст регулярными выражениями.

Дальше: исполняемые утилиты

Нашли неточность? Выделите фрагмент текста — рядом появится жучок.

Нужен разбор именно вашей ситуации?

Статья описывает общий случай. Если у вас частный — можно разобрать его отдельно, платно. А если не хватает целого материала, предложите тему: её оплачивают вскладчину, и она выходит открытой для всех.

Доска запросов