tsconfig.json 中的目标是做什么用的?

What is target in tsconfig.json for?

tsconfig.json中的target是什么意思?

{
  "compilerOptions": 
  {
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "classic",
    "lib": [ "es2015", "dom",  "es2017" ]
  }
}

I am quite new to Typescript. What does Target in tsconfig.json signify?

target 表示 应该从给定的 TypeScript 发出 JavaScript 的哪个目标。示例:

target:es5

()=>null 将变为 function(){return null} 因为 ES5 没有箭头函数。

target:es6

()=>null 将变为 ()=>null 因为 ES6 具有箭头功能。

更多

我也做了一个快速的 video on the subject .

Target 更改了您正在编译的 JavaScript 版本。

选项可在 https://www.typescriptlang.org/docs/handbook/compiler-options.html

本着试图更好地理解目标标志如何改变我的代码的精神,我为每个不同的版本编译了一些测试代码,以便更好地理解差异。

https://github.com/aizatto/typescript-playground/tree/master/dist/test-async-main

我还记录了我应该根据我正在查看的环境确定的目标

https://www.aizatto.com/notes/typescript

如果您的目标是 es2017 ,则这是最新版本,其中包含对共享内存和字符串的新库引用。更改目标意味着更改用于编译代码的库。如果您希望目标保持低版本同时支持高版本引用的库,您可以将所需的库添加到tsconfig.json中的"lib"

要了解更多关于不同版本中引用的库,请参阅this答案。