什么是打字稿 `--lib` 库文件?

What are typescript `--lib` library files?

还有。这涵盖了打字稿对选项的作用。下面的问答涵盖了 lib 文件在运行时的来源。

当我查找 --lib 编译器选项的描述时,它说:

List of library files to be included in the compilation.

这些库文件是什么?它们是如何包含的?我正在研究的存储库具有以下设置?

"compilerOptions": {
  "target": "es5",
  "module": "es2015",
  "lib": ["es2015", "dom"]
},

如果 --lib 未设置为 ["es2015", "dom"],输出会有何不同?

他们告诉打字稿编译器这些类型库在 运行 期间可用,它不会抱怨您的目标 es 版本缺少功能。

您的配置针对 es5,但您告诉打字稿 "es2015" 功能将可用 - 例如 Promise 和 Map。同样,你有 "dom",所以打字稿知道你有 window 和浏览器-dom 功能。

据我所知,它不会改变输出...当您尝试使用目标 es 版本中不存在的功能时,打字稿只会出错。

当您想要以旧浏览器为目标,但又想使用 Promises 时,您会这样做。所以我们告诉编译器它可用 lib:["es2015.promise"] 然后你 运行 在执行时像 core-jsbluebird 这样的东西来填充 Promise 功能。