打字稿 - tsconfig中的目标是什么?

Ank*_*nka 55 javascript transpiler typescript tsconfig

我对Typescript很新.tsconfig.json中的Target表示什么?

{
  "compilerOptions": 
  {
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "jsx": "react",
    "moduleResolution": "classic",
    "lib": [ "es2015", "dom",  "es2017" ]
  }
}
Run Code Online (Sandbox Code Playgroud)

bas*_*rat 71

我对Typescript很新.tsconfig.json中的Target表示什么?

target表示应从给定的TypeScript中发出JavaScript的哪个目标.例子:

target:es5

()=>null将成为function(){return null}ES5没有箭头功能.

target:es6

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

  • @Qwerty 不,不会。例如,它在 Internet Explorer 11 中不起作用,因为它不支持 es6 并且没有 .map 功能。即使你的目标是 es5,它仍然无法在 Internet Explorer 中工作,因为添加 polyfill 不是转译器的工作。如果你想支持非 es6 浏览器,你仍然需要添加一个 polyfill。 (3认同)
  • 如果我以es5为目标,我还需要babel吗?如果我的打字稿代码也包含async和await,如果我将target设为es5可以编译吗? (2认同)
  • 不需要通天塔 (2认同)
  • @Qwerty 好吧,我要说的是 Typescript 转译不会为您填充缺失的方法,它只负责语法。这个线程很好地解释了它:https://github.com/frankwallis/plugin-typescript/issues/166 (2认同)

小智 11

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