А вот и продолжение истории поддержки TypeScript в Node.js подоспело. Был добавлен флаг --experimental-transform-types, который добавляет возможность запускать файлы с TypeScript-only (требующем трансформации) синтаксисом (Enum, namespace, module с поддержкой source-map). Однако Node.js всё ещё не читает ваш tsconfig.json.



Из интересного: чтобы импортировать (import, require) файл, вам необходимо будет указать расширение .ts, которое включается в TS-конфиге опцией allowImportingTsExtensions. А ещё появилась целая команда для поддержки TypeScript в Node.js.



Кроме того, импорты типов должны быть помечены как type импорты, как при включенном verbatimModuleSyntax в TS-конфиге, иначе вы получите ошибку в рантайме.



import type { Type1, Type2 } from './module.ts';

import { fn, type FnParams } from './fn.ts';






Также предлагается добавить в feature флаги информацию о возможности импортировать файлы с типами или TypeScript-only синтаксисом.



process.features.typescript

// ^? "strip" | "transform"




Всего 4 дня назад в eslint появилась поддержка `.ts` конфигов благодаря jiti, поэтому нововведения в Node.js по импорту .ts файлов облегчат жизнь всему нашему сообществу.



Очень советую к прочтению этот README и ROADMAP, а ещё спасибо @melikhov_dev за упоминание!



Pull Request