gpt4 book ai didi

typescript - es6 和 es2017 之间 tsconfig.json 中的 'lib' 属性的区别?

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:08 25 4
gpt4 key购买 nike

我一直在研究在 tsconfig.json 文件中找到的 compilerOptionslib 属性的可能值意味着什么。我在 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"]
},
...
}
}

最佳答案

在对 Typescript GitHub 上的 lib 文件夹进行一些挖掘和比较之后我发现,在 compilerOptionslib 属性中使用 es6 对应于这些引用中的代码:

/// <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" />

所以要回答我的问题,要用 es2017 正确覆盖 es6 的所有内容,tsconfig.json 的那部分应该如下所示:

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

关于typescript - es6 和 es2017 之间 tsconfig.json 中的 'lib' 属性的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43874096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com