Typescript的target配置是什么意思
"target" 决定 TypeScript 把代码编译成哪种版本的 JavaScript。
"target" 决定 TypeScript 把代码编译成哪种版本的 JavaScript。
"target": "esnext" 是什么意思
意思是:尽量输出最新的 JS 语法,几乎不做“降级编译”。
例如:
| 源码写法 | target: "es5" |
target: "esnext" |
|---|---|---|
const / let |
可能变成 var |
保留 const / let |
async/await |
可能变成 Promise + 生成器 | 保留 async/await |
可选链 ?. |
可能变成一堆 if |
直接保留 ?. |
esnext = “当前 TypeScript 支持的最新 ECMAScript 特性”,会随 TS 版本变化。
常见取值
| 值 | 含义 |
|---|---|
"es5" |
很老的浏览器(IE 时代) |
"es2015" / "es6" |
现代基线 |
"es2020" / "es2022" 等 |
指定到某一年的标准 |
"esnext" |
最新,几乎不降级 |
target 管的是语法版本;module 管的是模块系统(import/require)。两个是分开的。
一句话
- 含义:编译输出的 JS “新到什么程度”。
esnext:尽量不转换,用最新语法。- 怎么写:新 Node项目 →
"esnext"或"es2022"都行;要兼容老环境 → 选更低的,比如"es2017"、"es5"。