node.js - 是否有任何引擎可以直接执行 TypeScript 代码?

标签 node.js typescript deno ts-node

刚开始学习TypeScript的时候,发现node.js并不会执行TypeScript,所以需要安装一个TypeScript编译器,把你的TypeScript代码转成JavaScript。
我搜索直到我找到ts-node (Node.js 的 TypeScript 执行和 REPL),但是当我阅读文档时,我发现它们也是如此( here )。偶deno (适用于 JavaScript 和 TypeScript 的现代运行时),正在做同样的事情( here )。
所以我的问题是:是否有任何引擎可以执行 TypeScript 代码而不将其转换为 JavaScript?

最佳答案

不,TypeScript 不是那种意义上的“独立”语言。它是并将永远是 JavaScript 的超集。这就是为什么 TypeScript 编译器通常被称为 transpiler : 它不会编译为低级语言。后 tsc已经运行了它的检查,它通过简单地去除所有 TypeScript 构造将现有源代码转换为 JavaScript。
来自 intro of the official TypeScript Handbook :

The goal of TypeScript is to be a static typechecker for JavaScript programs - in other words, a tool that runs before your code runs (static) and ensures that the types of the program are correct (typechecked).


所以为了执行 TypeScript,你总是需要一个 JavaScript 引擎。您也可以调整现有的 JavaScript 引擎(或构建自己的引擎)来理解 TypeScript,但它始终首先必须是符合 the ECMAScript specification. 的引擎。
迪诺也不异常(exception)。它有一个内置的 TypeScript 编译器,它是 a copy of the official one .来自 TypeScript chapter of the Deno manual .

At a high level, Deno converts TypeScript (as well as TSX and JSX) into JavaScript. It does this via a combination of the TypeScript compiler, which we build into Deno, and a Rust library called swc. When the code has been type checked and transformed, it is stored in a cache, ready for the next run without the need to convert it from its source to JavaScript again.


转译后,Deno 在 Google 的 V8 引擎上运行输出 JavaScript,与 NodeJS 和 Chrome 中使用的引擎相同。

关于node.js - 是否有任何引擎可以直接执行 TypeScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70006008/

相关文章:

javascript - 极简主义中只允许一根字符串?

javascript - 如何在 JavaScript 中将 {"name":"myName","value":"myValue"} 对象的数组转换为 "myName":"myValue"对的对象?

typescript 不推断删除运算符和展开运算符?

javascript - 在使用 TypeScript 编写时,如何查看 Deno 转译的 javascript?

deno - Node.js 中 process.argv 的 Deno 等价物是什么?

node.js - 如何连接到在 cloud9 服务器内部的 'localhost' 上运行的进程

node.js - 颜色.js : Proper syntax for adding a color to a variable (string)?

ios - 如何在导航栏 ios 上重叠图像

node.js - uuidv5 的 Typescript 声明,导出枚举和默认函数

typescript - 在 deno 中使用 mapbox-gl