Как улучшить код на TypeScript: 5 рекомендаций

TypeScript не только делает код надежным, но и имеет определенные издержки освоения. Неправильное использование этого языка чревато неожиданными багами.

Хотите писать код на TypeScript элегантно и профессионально? Тогда следуйте рекомендациям, основанным на лучших практиках!

1. Отдавайте предпочтение unknown, а не any

Когда переменной задается тип any, его проверка в компиляторе TypeScript пропускается, что аналогично добавлению @ts-ignore. Это опасно, потому что такая переменная выпадает из условий типов TypeScript. Делайте так, только если переносите проект из JavaScript в TypeScript.

Если не знаете тип переменной или хотите принимать аргументы любого типа, используйте unknown. Ведь, прежде чем применяться, он должен быть сведен к конкретному типу. Это часто безопаснее, например как в следующем коде:

Typescript (forked) — StackBlitz (example 1)

2. Не используйте объекты-обертки непримитивов

В JavaScript эти объекты имеют доступ к представленным в коде методам Object.prototype:

String | Number | Boolean | BigInt | Symbol;

Но даже в JavaScript они почти никогда не используются по назначению, а в TypeScript соответствующие типы есть, и их следует применять:

string | number | boolean | bigint | symbol;

Typescript (forked) — StackBlitz (example 2)

3. Где возможно, используйте константные перечисления

При обычных перечислениях во время выполнения генерируется дополнительный код, что увеличивает затраты на выполнение программы. А вот при перечислениях, объявляемых с помощью const, применяемые в коде значения перечисления встраиваются напрямую:

Typescript (forked) — StackBlitz (examlpe 3)

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

4. Оптимизируйте код на TypeScript

Применяйте новейший функционал JavaScript  —  опциональную цепочку (?.) и оператор нулевого слияния (??). В TypeScript они уже поддерживаются:

Typescript (forked) — StackBlitz (example 4)

5. Гибкое использование расширенных вспомогательных типов

Эти встроенные в TypeScript типы облегчают разработку. Комбинируйте их для выполнения преобразований почти всех основных типов:

Typescript (forked) — StackBlitz (example 5)

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Zachary Lee: 5 Tips for Writing Better TypeScript Code

Предыдущая статьяРуководство по созданию интерактивных визуализаций на Python
Следующая статьяGitHub Actions и Vercel — быстрое развертывание проектов