&lib; lib'在es6和es2017之间的tsconfig.json中的属性?

时间:2017-05-09 15:34:31

标签: typescript ecmascript-6 typescript-typings typescript2.0 ecmascript-2017

我一直在研究lib文件中找到的compilerOptions属性的可能值是什么意思tsconfig.json。我在Typescript GitHub页面上找到了与这些值对应的相关d.ts文件,并且显然使用ES2017包含以下ES功能:

/// <reference path="lib.es2016.d.ts" />
/// <reference path="lib.es2017.object.d.ts" />
/// <reference path="lib.es2017.sharedmemory.d.ts" />
/// <reference path="lib.es2017.string.d.ts" />
/// <reference path="lib.es2015.d.ts" />
/// <reference path="lib.es2016.array.include.d.ts" />
/// <reference path="lib.es2015.core.d.ts" />
/// <reference path="lib.es2015.collection.d.ts" />
/// <reference path="lib.es2015.generator.d.ts" />
/// <reference path="lib.es2015.iterable.d.ts" />
/// <reference path="lib.es2015.promise.d.ts" />
/// <reference path="lib.es2015.proxy.d.ts" />
/// <reference path="lib.es2015.reflect.d.ts" />
/// <reference path="lib.es2015.symbol.d.ts" />
/// <reference path="lib.es2015.symbol.wellknown.d.ts" />
/// <reference path="lib.es5.d.ts" />

但显然ES6不包括在内,并且它自己的file没有引用任何东西。我的问题是,如果有人知道,可以安全地假设使用es2017我涵盖所有es6功能(从打字角度来看)或者应该单独包含在lib中选项?

例如,像这样:

{
  ...
  "compilerOptions": {
    ...
    "lib": ["es2017", "dom"]
  },
  ...
  }
}

或者这个:

{
  ...
  "compilerOptions": {
    ...
    "lib": ["es2017", "es6", "dom"]
  },
  ...
  }
}

1 个答案:

答案 0 :(得分:9)

通过Typescript GitHub lib上的es6文件夹进行了一些挖掘和比较后,我发现lib对应compilerOptions属性中的/// <reference path="lib.es2015.core.d.ts" /> /// <reference path="lib.es2015.collection.d.ts" /> /// <reference path="lib.es2015.generator.d.ts" /> /// <reference path="lib.es2015.iterable.d.ts" /> /// <reference path="lib.es2015.promise.d.ts" /> /// <reference path="lib.es2015.proxy.d.ts" /> /// <reference path="lib.es2015.reflect.d.ts" /> /// <reference path="lib.es2015.symbol.d.ts" /> /// <reference path="lib.es2015.symbol.wellknown.d.ts" /> /// <reference path="lib.es5.d.ts" /> /// <reference path="lib.dom.d.ts" /> /// <reference path="lib.scripthost.d.ts.d.ts" /> /// <reference path="lib.dom.iterable.d.ts" /> 对应在这些参考文献中找到的代码:

es6

所以要回答我的问题,要正确覆盖es2017的所有内容{ ... "compilerOptions": { ... "lib": ["es2017", "dom", "dom.iterable", "scripthost"] }, ... } } tsconfig.json的那一部分应如下所示:

{{1}}