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)
Читайте также:
- TypeScript: основы
- Замечательные новые фичи TypeScript 3.5
- Настройка проекта TypeScript с помощью ESLint, Prettier и VS Code
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Zachary Lee: 5 Tips for Writing Better TypeScript Code