tsconfig编译属性target详解

作用

指定输出代码的 ECMAScript 目标版本 “ES3”(默认)

可选版本

es3es5es6es2015es2016es2017es2018es2019es2020es2021es2022esnext

  • 其中 es6 就是 es2015
  • 然后后续的 es2016 对应的就是 es7 依次类推, es2019 对应 es10
  • esnext: 一个动态的概念,指的是 ECMAScript 的下一个版本,指当前最新发布的版本没有包含。

编译示例

拿最简单的 ES5 以及 ES6 举例

const a = 8;

ES5 编译结果如下

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var a = 8;

ES6 编译结果如下

const a = 1;
export {};

测试一下可选链操作符(es2020 提供)

const a = {
	name: 'fnn',
	age: 18
}

const b = a?.age

当我们采用 ES6 输出时

const a = {
    name: 'fnn',
    age: 18
};
const b = a === null || a === void 0 ? void 0 : a.age;
export {};

当我们将 target 设置为 es2020,可以发现输出并没有被转换

const a = {
    name: 'fnn',
    age: 18
};
const b = a?.age;
export {};

总结

设置 target 为什么版本要取决于当前开发的项目需要兼容到什么版本的浏览器(浏览器对 ES 兼容到哪一个版本),所以不能轻易的设置为 esnext,以及其他新的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wflynn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值