【问题标题】:What is the typescript compiler's default lib value?什么是打字稿编译器默认库值?
【发布时间】:2021-01-04 16:15:16
【问题描述】:

documentation 表示 --lib 默认派生自 --target

注意:如果没有指定 --lib 库的默认列表是 注入。注入的默认库是:

  • 对于 --target ES5: DOM,ES5,ScriptHost
  • 对于--target ES6:DOM,ES6,DOM.Iterable,ScriptHost

同样的文档说默认的--target 值是ES3

指定 ECMAScript 目标版本:

  • “ES3”(默认)
  • “ES5”
  • “ES6”/“ES2015”
  • “ES2016”
  • “ES2017”
  • “ES2018”
  • “ES2019”
  • “ES2020”
  • “ESNext”

那么...当--lib--target 均未设置时,--lib 的默认值是什么?

【问题讨论】:

    标签: typescript tsc


    【解决方案1】:

    在源代码中有一个list of supported libs,其中有一个名为“默认库”的部分:

            // Default libraries
            "es5.full",
            "es2015.full",
            "es2016.full",
            "es2017.full",
            "es2018.full",
            "es2019.full",
            "es2020.full",
            "es2021.full",
            "esnext.full"
    

    这些对应于您的目标设置。

    查看其中一个 (lib.es2017.full.d.ts) 的源代码,您可以看到它导入了什么:

    /// <reference lib="es2017" />
    /// <reference lib="dom" />
    /// <reference lib="webworker.importscripts" />
    /// <reference lib="scripthost" />
    /// <reference lib="dom.iterable" />
    

    仅供参考,所有语言级别都导入前一个。所以例如:es2018导入es2017,其中导入es2016,其中导入es2015,其中导入es5。 "es6" 是独一无二的,因为没有任何东西可以导入它。

    源代码中似乎没有“es3”lib 文件,所以我没有答案。尝试设置noLib,看看有什么问题,并在下面评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 2014-02-16
      • 2017-12-16
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 2019-02-27
      相关资源
      最近更新 更多