有is a similar question。这涵盖了打字稿对选项的作用。以下问题和答案涵盖了lib
文件在运行时的来源。
当我查找--lib
编译器选项的描述时,它说:
要包含在编辑中的库文件列表。
这些库文件是什么?它们是如何包含在内的?我正在学习的知识库有以下设置吗?
"compilerOptions": {
"target": "es5",
"module": "es2015",
"lib": ["es2015", "dom"]
},
如果--lib
未设置为["es2015", "dom"]
,输出会有何不同?
答案 0 :(得分:3)
他们告诉typescript编译器这些类型库在运行时是可用的,它不会抱怨你的目标es版本缺少功能。
您的配置定位于es5
,但您告诉打字稿“es2015”功能将可用 - 例如Promise和Map。同样,你有“dom”,因此打字稿知道你有window
和浏览器dom功能。
据我所知,它不会改变输出...当你尝试使用目标es版本中不存在的功能时,typescript会出错。
如果您想要定位旧浏览器,但又想使用Promises,则可以执行此操作。因此,我们通过lib:["es2015.promise"]
告诉编译器它可用,然后在执行时运行类似core-js
或bluebird
的内容来填充Promise功能。