Node.js стабилизирует встроенное выполнение TypeScript (удаление типов теперь по умолчанию)

Node.jsTypeScriptDevOps

Основное обновление

Node.js стабилизировал свою встроенную поддержку TypeScript: легковесный трансформер "удаления типов" в среде выполнения включен по умолчанию и больше не выдает экспериментальное предупреждение в недавней документации 24.x. Это позволяет Node напрямую выполнять .ts файлы (и следить за ними) без внешнего транспайлера, при условии, что код использует только стираемую синтаксис TypeScript; конструкции, которые требуют генерации кода JavaScript (например, перечисления или определенные преобразования параметров-свойств), по-прежнему требуют явного флага трансформации. Node намеренно игнорирует tsconfig.json для поведения во время выполнения, требует явные расширения файлов в импортах и по умолчанию не будет запускать файлы TypeScript, вложенные в node_modules.

Почему это важно

Это практическое изменение, а не просто удобство: для скриптов, инструментов CLI, простых бэкендов и рабочих процессов разработчиков теперь вы можете полностью убрать шаг транспиляции и запускать исходный код TypeScript напрямую с Node (быстрая итерация, меньше зависимостей для разработки, проще CI для быстрых задач). Однако это не замена полноценному конвейеру сборки TypeScript. Среда выполнения не выполняет проверку типов и пропускает правила tsconfig, такие как переименование псевдонимов путей, поэтому производственные сборки, которые нуждаются в безопасности типов, транспиляции для более старых целей, совместимости упаковки или предсказуемом разрешении модулей, по-прежнему должны включать правильный шаг компиляции (tsc, swc или esbuild) и проверку типов в тестах/CI. Для авторов библиотек и команд ожидайте небольших, но важных изменений в инструментальной цепочке: обеспечьте явные расширения импорта, пересмотрите использование функций TS, которые требуют генерации кода, и рассмотрите возможность поэтапного принятия (используйте выполнение в среде выполнения для разработки/скриптов, сохраняя шаг сборки для релизов). В целом, это снижает трение для многих повседневных задач разработчиков, но не устраняет необходимость в целенаправленных практиках сборки и тестирования в производстве.

Источник

Читать дальше