我一直在研究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"]
},
...
}
}
答案 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}}