Когда я пришел на текущий проект тут был Vue и чистый (и не очень) JS.
Посмотрев на то как TS встраивается в мир Vue 2, я решил что переводить проект на TS вряд ли буду.
И без это была масса проблем, которые стоило порешать.
Проще было внедрить жесткий линтинг и тесты.
Но в определенный момент встала задача прикрутить клиентское кэширование. А это декораторы и адаптеры. Мне было очень больно без статической типизации.
И я начал прикручивать TS. Это оказалось очень просто!
- добавляем в babel preset
- дописываем ‘.ts’ рядом с ‘.js’ в конфиги вебака
Все хорошо. Но где проверка типов?
В tsconfig.json можно указать "noEmit": true, и запуск tsc превращается в запуск линтера, проверяющего типы! То что надо!
Еще несколько часов гугления настроек для eslint и jest и все работает как и прежде. Но мы можем часть кода писать на ts.
Мораль. Прикрутить ts к существующему проекту - один рабочий день.
Правда потом вы потратите 5 на описание типов ваших этюдов в метрогамировании. Но это будет потом )