打字稿编译器的默认 lib 值是多少?
What is the typescript compiler's default lib value?
documentation 表示 --lib
默认来自 --target
:
Note: If --lib is not specified a default list of libraries are
injected. The default libraries injected are:
- For --target ES5: DOM,ES5,ScriptHost
- For --target ES6: DOM,ES6,DOM.Iterable,ScriptHost
同样的文档说默认的--target
值是ES3:
Specify ECMAScript target version:
- "ES3" (default)
- "ES5"
- "ES6"/"ES2015"
- "ES2016"
- "ES2017"
- "ES2018"
- "ES2019"
- "ES2020"
- "ESNext"
那么...当 --lib
和 --target
都未设置时,--lib
默认值是多少?
在源代码中有一个 list of supported libs,其中有一个名为“默认库”的部分:
// 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,es2015 导入 es2015,es2015 导入 es5。 “es6”是独一无二的,因为没有任何东西导入它。
源代码中似乎没有“es3”lib 文件,所以我没有答案。尝试设置 noLib
,看看有什么问题,然后在下面发表评论。
documentation 表示 --lib
默认来自 --target
:
Note: If --lib is not specified a default list of libraries are injected. The default libraries injected are:
- For --target ES5: DOM,ES5,ScriptHost
- For --target ES6: DOM,ES6,DOM.Iterable,ScriptHost
同样的文档说默认的--target
值是ES3:
Specify ECMAScript target version:
- "ES3" (default)
- "ES5"
- "ES6"/"ES2015"
- "ES2016"
- "ES2017"
- "ES2018"
- "ES2019"
- "ES2020"
- "ESNext"
那么...当 --lib
和 --target
都未设置时,--lib
默认值是多少?
在源代码中有一个 list of supported libs,其中有一个名为“默认库”的部分:
// 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,es2015 导入 es2015,es2015 导入 es5。 “es6”是独一无二的,因为没有任何东西导入它。
源代码中似乎没有“es3”lib 文件,所以我没有答案。尝试设置 noLib
,看看有什么问题,然后在下面发表评论。