Источник: Nuances of Programming
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)
Читайте также:
Перевод статьи Zachary Lee: 5 Tips for Writing Better TypeScript Code