Несколько дней назад я закончил читать Effective TypeScript Дэна Вандеркама в течение длительного перелета (8 часов, если быть точным!). Книга написана лаконично, с большими практическими советами. Хотя я рекомендую прочитать книгу полностью, вот несколько моих любимых советов.

1. Используйте только для чтения, чтобы предотвратить изменение объектов в результате ошибок.

Когда массив или кортеж помечены как readonly, TS выдаст ошибку, когда пользователь попытается добавить, удалить или обновить элементы в этих объектах. Это особенно полезно при функциональном программировании, чтобы избежать побочных эффектов.

2. Предпочитайте выражения функций объявлениям функций для повторного использования типов.

При написании утилит с одинаковыми сигнатурами функций это может немного повторяться. Ниже вы видите три функции, связанные с тележкой, которые требуют, чтобы типы ввода и вывода каждый раз записывались заново.

Чтобы сохранить его СУХИМ, вы можете назначить всю подпись типу функции и переключиться на использование функциональных выражений.

3. Предпочитайте неизвестное любому, чтобы повысить безопасность типов.

Использование any может быть полезным аварийным выходом, но есть также веские причины его избегать. Он не гарантирует какой-либо типовой безопасности и скрывает ошибки от потребителей вверх по цепочке вызовов. С типом unknown TypeScript будет правильно обнаруживать ошибки, такие как вызов несуществующих методов.

Если вы как разработчик имеете больше знаний о типе, чем компилятор, вы также можете использовать unknown с двойными утверждениями, чтобы прояснить цель.

4. Используйте комментарии в стиле JSDoc или TSDoc для лучшего опыта разработки.

В большинстве случаев вам следует избегать размещения информации о типе в комментариях. Однако, если вы мигрируете и используете JS для включения TS, или если вы хотите предоставить дополнительную информацию о функции, JSDoc или TSDoc - отличный способ получить проверку типа и интегрироваться с вашей IDE.

Примечание. VSCode показывает правильно отформатированные комментарии во всплывающей подсказке.

Вот и все! Я выбрал эти советы, потому что они сразу же применимы для улучшения существующей кодовой базы. Надеюсь, они вам тоже пригодились.