К основному содержанию
A1sCode
Быстрый старт
02
Урок 2 из 5 · 5 минут

TYPE: дополнять язык, а не повторять его

Отделять полезное ограничение от бесполезного повторения объявленного типа.

Программа курса ↗
01 · Правило дополнительности

TYPE нужен только для того, чего не выражает язык

Повторить в комментарии слово «Число» недостаточно. Полезный TYPE уточняет отсутствие, диапазон, точность, допустимые состояния или доверенность внешнего значения.

Полезный TYPEнаведите на цветной токен, чтобы увидеть его рольMILA
КредитныйЛимит
    // TYPE: Число >= 0 или Неопределено; 0 не означает отсутствие
    // WHY: лимит участвует в проверке возможности отгрузки
    = Настройки.КредитныйЛимит;
02 · Главное различие

Ноль и отсутствие — разные состояния

Неопределенонастройка отсутствует
0лимит настроен и равен нулю
> 0доступен положительный лимит

Если модель склеивает эти состояния, последующий HOW не сможет восстановить потерянный смысл.

Практика

Решите, нужен ли TYPE

  • КоличествоСтрок — обычное неотрицательное целое, проверяемое конструктором.
  • СуммаПлатежа — два знака после запятой, null запрещён, отрицательное значение недопустимо.
  • СтатусОтвета — только «Принят», «Отклонён» или «Ожидает».

TYPE полезен во втором и третьем случаях, если эти ограничения не представлены предметным типом или валидатором.

Самопроверка

  1. TYPE добавляет новое ограничение?
  2. Можно ли выразить ограничение типом, схемой или валидатором?
  3. Разделены ли ноль, пустота и отсутствие?