Запуск TypeScript на Node.js



Начиная с Node.js v23.6.0 можно запускать TypeScript-файлы в Node.js без всяких флагов. Это всё ещё экспериментальная фича, но вот, как она работает:

- Нода выпиливает TS-фичи из кода и просто выполняет, что получилось. Убирает типы, то есть.

- Если в коде есть enum, namespace и прочие улучшалки из мира TS, которых на самом деле нет в JS, то магия не случится, код сломается.

- Расширение файла .mts — это модульный JS, .cts — CommonJS, .tsx — не поддерживается.

- Просто .ts файлы обрабатываются как .js, то есть модульность берётся из package.json.



Таким образом, рано или поздно для серверных штук мы вполне можем прийти к сценарию, когда для разработки активно используется TypeScript со всеми проверками, строгими и нестрогими, чтобы писать более-менее качественный код, а запускаются на выполнение в проде те же самые файлы, без транспиляции. Для всяких CI/CD — обалденная экономия. А то сейчас надо сначала установить TypeScript или достать его из кэша, запустить на транспиляцию, и только потом можно что-то запускать. Для мелких скриптов — расточительнейшая трата времени и железа.



Больше подробностей про фичу — у доктора Акселя Раушмайера.



https://2ality.com/2025/01/nodejs-strip-type.html