Интерфейсы привычны для объектов и слияния объявлений; type alias удобно сочетаются с union. TypeDraft поддерживает оба без заявления об универсальном победителе.

Следуйте правилам проекта

Используйте стиль целевого пакета, если конкретная возможность TypeScript не требует другого.

Стиль объявления не добавляет фактов

Переход с interface на type меняет синтаксис, но не факты из JSON. Отдельно проверьте optional, union и null и сохраняйте runtime-проверку на недоверенных границах.

Сверьте с настоящим контрактом

Скомпилируйте файл и сверьте каждое свойство с документацией API, OpenAPI или JSON Schema. Добавьте отсутствующие поля, исправьте null и optional и применяйте runtime-проверку на недоверенных границах. Храните показательный пример рядом с проверенным типом, чтобы замечать изменения.