TypeScript 编译器的默认 lib 值是什么?

6
根据文档,如果未指定--lib,则默认使用--target的库列表:
注意:如果未指定--lib,则注入默认库列表。默认注入的库包括: - 对于--target ES5: DOM、ES5、ScriptHost - 对于--target ES6: DOM、ES6、DOM.Iterable、ScriptHost
同一文档还指出,默认的--target值为ES3:
指定 ECMAScript 目标版本: - "ES3" (默认) - "ES5" - "ES6"/"ES2015" - "ES2016" - "ES2017" - "ES2018" - "ES2019" - "ES2020" - "ESNext"
那么……当未设置--lib--target时,--lib的默认值是什么?
1个回答

3
在源代码中有一个名为“支持库列表”的列表,其中有一个名为“默认库”的部分。
        // Default libraries
        "es5.full",
        "es2015.full",
        "es2016.full",
        "es2017.full",
        "es2018.full",
        "es2019.full",
        "es2020.full",
        "es2021.full",
        "esnext.full"

这些对应于您的目标设置。

查看其中一个的源代码(lib.es2017.full.d.ts),您可以看到它导入了什么:

/// <reference lib="es2017" />
/// <reference lib="dom" />
/// <reference lib="webworker.importscripts" />
/// <reference lib="scripthost" />
/// <reference lib="dom.iterable" />

顺便提一下,所有的语言级别都会导入前一个。例如:es2018 导入 es2017,es2017 导入 es2016,es2016 导入 es2015,es2015 导入 es5。"es6" 是独特的,因为没有任何东西导入它。

源代码中似乎没有 "es3" lib 文件,所以我没有答案。尝试设置 noLib,看看会出现什么问题,然后在下面评论。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接