TypeScript Downleveling - 什么是 TypeScript 的降级行为

简介: TypeScript Downleveling - 什么是 TypeScript 的降级行为

下列 TypeScript 代码:


function greet(person: string, date: Date) {
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}
greet("Maddison", new Date());

使用 tsc 编译器编译之后生成的 JavaScript 代码:


function greet(person, date) {
    console.log("Hello " + person + ", today is " + date.toDateString() + "!");
}
greet("Maddison", new Date());

为什么字符串模板在编译后的 JavaScript 代码里会消失呢?


image.png


模板字符串是来自 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 会给我们以下输出:


image.png

相关文章
|
JavaScript
TypeScript Downleveling - 什么是 TypeScript 的降级行为
TypeScript Downleveling - 什么是 TypeScript 的降级行为
128 0
TypeScript Downleveling - 什么是 TypeScript 的降级行为
|
2月前
|
JavaScript 前端开发 安全
Apollo与TypeScript:强大类型检查在前端开发中的应用
Apollo与TypeScript:强大类型检查在前端开发中的应用
|
3月前
|
JavaScript 前端开发
TypeScript 联合类型
TypeScript 联合类型
35 0
|
3月前
|
存储 JavaScript 前端开发
2020你应该知道的TypeScript学习路线【数组类型】
2020你应该知道的TypeScript学习路线【数组类型】
33 0
|
3天前
|
JavaScript 前端开发 编译器
TypeScript中的高级类型:联合类型、交叉类型与条件类型深入解析
【4月更文挑战第23天】探索TypeScript的高级类型。这些特性增强类型系统的灵活性,提升代码质量和维护性。
|
1月前
|
JavaScript 安全
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
|
1月前
react+typescript给state和props定义指定类型
react+typescript给state和props定义指定类型
16 1
|
2月前
|
JavaScript 安全 索引
TypeScript泛型和类型体操
泛型和类型体操(Type Gymnastics)是 TypeScript 中高级类型系统的重要组成部分。它们提供了强大的工具和技巧,用于处理复杂的类型操作和转换。
|
2月前
|
JavaScript 安全 容器
Vue3 + setup + TypeScript: 构建现代、类型安全的Vue应用的关键技巧总结
当使用 setup 的时候,组件直接引入就可以了,不需要再自己手动注册
|
3月前
|
JavaScript 前端开发 IDE
【TypeScript】带类型语法的JavaScript
【1月更文挑战第26天】【TypeScript】带类型语法的JavaScript