В хорошем ответе по TypeScript объясняется, какие недопустимые состояния исключены, какие риски во время выполнения остаются и насколько понятным будет полученный API для другого разработчика.
Основные вопросы о принципах работы
- Чем `unknown`, `any` и `never` отличаются в API?
- Когда размеченное объединение лучше необязательных полей?
- Как работает сужение типов на основе потока управления?
- Что упрощает структурная типизация и какие риски она создаёт?
- Как ограничения обобщённых типов улучшают API?
Практические вопросы API
- Разработайте состояния асинхронного запроса.
- Опишите типы карты событий, сохранив отдельный тип данных для каждого события.
- Модель формы с условными полями.
- Создайте безопасный адаптер вокруг ненадежного JSON.
- Расширьте общую функцию, сохранив совместимость с вызывающим кодом.
Вопросы о системе
- Где должна происходить проверка данных во время выполнения?
- Как использовать сгенерированные типы API?
- Как вы будете постепенно усиливать строгость типов при миграции?
- Когда утверждения типов могут скрыть проблему проектирования?
- Как ссылки на проекты или границы пакетов влияют на большую кодовую базу?
Структура ответа
- Укажите инвариант продукта.
- Показать простейшую читаемую модель.
- Назовите границу времени выполнения.
- Обсудите вывод типов и удобство использования API в вызывающем коде.
- Объясните последствия миграции и тестирования.
Первичные источники
Редакционная проверка
Описание продукта сверено с его текущими возможностями. Нашли ошибку? Отправьте исправление.