Isl*_*her 7 node.js typescript ts-node deno
当我第一次学习TypeScript时,我发现node.js不执行TypeScript,因此你需要安装一个TypeScript编译器来将你的TypeScript代码转换为JavaScript。
我一直在搜索,直到找到ts-node(Node.js 的 TypeScript 执行和 REPL),但是当我阅读文档时,我发现它们执行相同的操作(此处)。甚至deno(JavaScript 和 TypeScript 的现代运行时)也在做同样的事情(此处)。
所以我的问题是:是否有任何引擎可以执行 TypeScript 代码而不将其转换为 JavaScript?
不,从这个意义上来说,TypeScript 并不是一种“独立”语言。它现在是并且永远是 JavaScript 的超集。这就是为什么 TypeScript 编译器通常被称为转译器:它不会编译为较低级别的语言。tsc运行检查后,它只需删除所有 TypeScript 构造即可将现有源代码转换为 JavaScript。
TypeScript 的目标是成为 JavaScript 程序的静态类型检查器 - 换句话说,是一种在代码运行之前运行的工具(静态)并确保程序的类型正确(经过类型检查)。
因此,为了执行 TypeScript,您始终需要一个 JavaScript 引擎。您也可以改编现有的 JavaScript 引擎(或构建自己的引擎)来理解 TypeScript,但它仍然首先必须是符合ECMAScript 规范的引擎。
德诺也不例外。它有一个内置的 TypeScript 编译器,它是官方编译器的副本。来自Deno 手册的 TypeScript 章节。
在较高层面上,Deno 将 TypeScript(以及 TSX 和 JSX)转换为 JavaScript。它通过我们在 Deno 中构建的 TypeScript 编译器和名为 swc 的 Rust 库的组合来实现这一点。当代码经过类型检查和转换后,它会存储在缓存中,为下次运行做好准备,而无需再次将其从源代码转换为 JavaScript。
转译后,Deno 在 Google 的 V8 引擎上运行输出 JavaScript,该引擎与 NodeJS 和 Chrome 中使用的引擎相同。
| 归档时间: |
|
| 查看次数: |
4411 次 |
| 最近记录: |