Node.js adiciona suporte experimental a TypeScript
(github.com/nodejs)Módulo: adição de --experimental-strip-types
-
É possível executar arquivos TypeScript no Node.js
- Ao definir a flag
--experimental-strip-types, é possível executar arquivos TypeScript - O Node.js converte o código-fonte TypeScript em código-fonte JavaScript
- Durante o processo de conversão, não é feita verificação de tipos; os tipos são removidos
- Ao definir a flag
-
Motivação
- É importante permitir a execução de arquivos TypeScript sem dependências externas ou loaders
- Querem que os usuários possam executar
node foo.ts
-
O significado de remover tipos
- Remover tipos significa eliminar todos os tipos e converter a entrada em um módulo JavaScript
- Exemplo:
const foo: string = "foo";é convertido emconst foo = "foo";
-
Motivo da escolha do @swc/wasm-typescript
- Pela simplicidade
- Outras ferramentas exigem adicionar Rust ou Go, mas o @swc/wasm-typescript precisa apenas de um pacote pequeno com arquivos wasm e js
- Também é usado no Deno, o que o torna confiável
-
Limitações
- Recursos exclusivos do TypeScript, como enum e namespaces, não são convertidos
- Imports sem extensão não são suportados
-
Planos futuros
- Pode vir a ser implementado na camada nativa
- Pode receber suporte a source maps
Resumo do GN⁺
- Explica um novo recurso que permite executar arquivos TypeScript no Node.js
- Permite converter e executar arquivos TypeScript como JavaScript, sem realizar verificação de tipos
- Isso simplifica o ambiente de desenvolvimento ao permitir que usuários executem arquivos TypeScript sem dependências externas
- Esse recurso foi implementado com @swc/wasm-typescript, e também está sendo considerada uma implementação futura na camada nativa
- Pode ser útil para projetos que usam TypeScript e JavaScript de forma combinada.
1 comentários
Comentários no Hacker News
Remover os tipos do TypeScript não é possível sem a gramática do TypeScript. A remoção de tipos não é uma tarefa no nível de tokens, e a gramática do TypeScript continua mudando
foo < bar & baz > ( x )era interpretado de forma diferente no TypeScript 1.5Se o Node.js puder executar arquivos TypeScript diretamente, o compilador TypeScript não precisaria remover os tipos e convertê-los para JavaScript
Fico curioso para saber como o ecossistema do NPM reagiria se esse recurso se tornasse o padrão
engine: nodejs >= 25no package.json e pular a etapa de buildSeria um grande ganho se o Node pudesse inspecionar tipos em JS
A experiência de desenvolvimento (DX) do Bun é sem precedentes nessa área, e cobre a maioria dos casos de uso
Gosto muito de TypeScript e venho desejando um runtime de TypeScript há muito tempo
Meu recurso favorito do deno está chegando diretamente ao Node
Foi um mês muito importante para o Node
node:sqlite, e agora está recebendo suporte a TypeScriptSou o autor do PR, AMA
Comecei a usar Node.js para trabalho de backend há muito tempo, e ele oferecia muitas vantagens sobre PHP