3

一个类似的问题。这涵盖了 typescript 对选项的作用。以下问题和答案涵盖了lib文件在运行时的来源。

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

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

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

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

如果--lib不设置为,输出会有什么不同["es2015", "dom"]

4

1 回答 1

7

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

您的配置是目标es5,但您告诉 typescript “es2015”功能将可用 - 例如 Promise 和 Map。同样你有“dom”,所以 typescript 知道你有window和 browser-dom 特性。

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

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

于 2017-05-04T14:22:39.950 回答