Skip to content

降级编译

与上面的另一个区别是我们的模板字符串是从:

javascript
`Hello ${person}, today is ${date.toDateString()}!`

javascript
"Hello " + person + ", today is " + date.toDateString() + "!";

为什么会这样?

模板字符串是 ECMAScript 版本的一个特性,称为 ECMAScript 2015(又名 ECMAScript 6、ES2015、ES6 等)。TypeScript 能够将代码从较新版本的 ECMAScript 重写为旧版本,例如 ECMAScript 3 或 ECMAScript 5(又名 ES3 和 ES5)。这种从更新或“更高”版本的 ECMAScript ,向下移动到旧版本或“更低”版本的过程有时称为降级。

默认情况下,TypeScript 以 ES3 为目标,这是一个非常旧的 ECMAScript 版本。通过使用 target 选 项,我们可以选择更新一些的内容。运行 --target es2015 TypeScript 以针对 ECMAScript 2015进行更改,这意味着代码应该能够在支持ECMAScript 2015 的任何地方运行。所以运行 tsc --target es2015 hello.ts 会给我们以下输出:

虽然默认目标是 ES3,但当前绝大多数浏览器都支持 ES2015。因此,大多数开发人员可以安全地将 ES2015 或更高版本指定为目标,除非考虑与某些旧浏览器的兼容性。