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

Are there any engines to execute TypeScript code directly?

刚开始学习TypeScript的时候,发现node.js不执行TypeScript,所以需要安装TypeScript编译器,把你的TypeScript代码转换成JavaScript。

我搜索直到找到 ts-node(node.js 的 TypeScript 执行和 REPL),但是当我阅读文档时,我发现它们也是如此 (here). Even deno (A modern runtime for JavaScript and TypeScript), is doing the same (here)。

所以我的问题是:是否有任何引擎可以在不将其转换为 JavaScript 的情况下执行 TypeScript 代码?

不,从这个意义上说,TypeScript 不是一种“独立”的语言。它现在是并且永远是 JavaScript 的超集。这就是为什么 TypeScript 编译器通常被称为 transpiler 的原因:它不会编译为低级语言。在 tsc 有 运行 它检查它 转换 现有源到 JavaScript 通过简单地剥离所有 TypeScript 结构。

来自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.

的引擎

Deno 也不例外。它有一个内置的 TypeScript 编译器,即 a copy of the official one. From the 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 中使用的引擎相同。