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

时间:2017-05-04 14:16:25

标签: typescript typescript2.2

is a similar question。这涵盖了打字稿对选项的作用。以下问题和答案涵盖了lib文件在运行时的来源。

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

  

要包含在编辑中的库文件列表。

这些库文件是什么?它们是如何包含在内的?我正在学习的知识库有以下设置吗?

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

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

1 个答案:

答案 0 :(得分:3)

他们告诉typescript编译器这些类型库在运行时是可用的,它不会抱怨你的目标es版本缺少功能。

您的配置定位于es5,但您告诉打字稿“es2015”功能将可用 - 例如Promise和Map。同样,你有“dom”,因此打字稿知道你有window和浏览器dom功能。

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

如果您想要定位旧浏览器,但又想使用Promises,则可以执行此操作。因此,我们通过lib:["es2015.promise"]告诉编译器它可用,然后在执行时运行类似core-jsbluebird的内容来填充Promise功能。