【问题标题】:What is the use case for the tsconfig "lib" option?tsconfig“lib”选项的用例是什么?
【发布时间】:2018-11-21 00:10:40
【问题描述】:

this questionthis code 可以清楚地看出,在tsconfig 中使用lib不会填充您正在使用的任何功能,而这些功能在您的目标环境中不受支持。

如果这是真的,那么用例应该是什么?如果我有一个我拉进来的polyfill,比如bluebird,我会使用DefinitelyTyped 定义文件。是否有 targetlib 的组合旨在修复 TS 中的常见模式?

【问题讨论】:

  • 如果您的目标浏览器具有原生 Promise,您可以使用 lib 来提供定义,而无需使用 polyfill。
  • 但如果这是我的运行时,我的目标是 es6 而不是 es5,TS 会自动知道 Promise 是一个东西
  • 是的,这只是一个例子......它用于 JavaScript 引擎/运行时功能,这些功能不一定有预先制作的定义文件。对于一个运行时可能提供但另一个运行时不提供的东西。例如,可能有一个浏览器需要es5 来处理某些事情,比如不支持箭头功能,但确实包括生成器。您可以使用 lib 条目的组合来满足该运行时的需要。

标签: typescript


【解决方案1】:

默认的 lib 包含 DOM,但您可能在像 node 这样的非浏览器环境中运行,因此删除它很有用。

您也可能在 webworker 上下文中运行,该上下文具有单独的 lib 设置。

您也可能正在使用不需要特定类型的综合性 polyfill 库。

也可能是您的主机,例如支持一些 ES6 API,但不支持特定的 ES6 语法,因此您可以“混合和匹配”到不支持 100% 任何特定规范级别的目标环境。

【讨论】:

    猜你喜欢
    • 2017-01-11
    • 2019-10-07
    • 2019-08-23
    • 2018-12-01
    • 1970-01-01
    • 2021-11-22
    • 2021-09-10
    • 2019-07-18
    • 2018-06-16
    相关资源
    最近更新 更多