tsconfig.json中的目标是什么?


95

是什么targettsconfig.json意味着什么?

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

Answers:


112

我对Typescript很陌生。tsconfig.json中的Target表示什么?

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

target:es5

()=>null将成为function(){return null}ES5,因为它没有箭头功能。

target:es6

()=>null将成为()=>nullES6具有箭头功能。


5
如果我以es5为目标,我还需要babel吗?如果我的打字稿代码也包含async和await,如果我将target设为es5可以进行编译吗?
Ankit Raonka'2

4
🌹不需要通天塔
basarat

我正在使用,es5但是它将解释[...arr].maparr.slice().map,这对于没有的类似数组的对象会破坏slice。当我以es6为目标时,它开始在我的浏览器中运行,但是对所有人都适用吗?
Qwerty

1
@Qwerty不,不会。例如,它不能在Internet Explorer 11中工作,因为它不支持es6并且不具有.map函数。即使您以es5为目标,它仍然不能在Internet Explorer中工作,因为添加polyfill并不是翻译人员的工作。如果要支持非es6浏览器,则仍需要添加一个polyfill。
pabrams

1
@Qwerty好吧,我要说的是Typescript转换不会为您多填充缺少的方法,它只会处理语法。这个线程很好地解释了这个问题: github.com/frankwallis/plugin-typescript/issues/166
pabrams,

10

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.