Skip to content

擦除类型

让我们来仔细看看,当我们 tsc 编译上面的代码会输出的什么样的JavaScript,观察 hello.js

这里要注意两点:

1.我们的 person 和 date 参数不再有类型注释。

2.我们的“模板字符串” - 使用反引号(`字符)的字符串 - 被转换为带有连接 ( + ) 的纯字符串。

稍后会详细介绍第二点,现在让我们专注于第一点。类型注释不是 JavaScript 的一部分(或者说 ECMAScript 是落后的),因此实际上没有任何浏览器,或其他运行时可以不加修改地运行 TypeScript。这就是 TypeScript 首先需要编译器的原因——它需要某种方式来剥离或转换任何特定于 TypeScript 的代码,以便我们可以运行它。大多数 TypeScript 特定的代码都被删除了。

请记住:类型注释永远不会改变程序的运行时行为。