【问题标题】:does lib property overwrite target property in tsconfig.jsonlib 属性会覆盖 tsconfig.json 中的目标属性吗
【发布时间】:2020-01-14 22:10:38
【问题描述】:

我是 typescript 的新手,只是关于 lib 属性和目标属性的问题 下面是 tsconfig.json 文件:

{
 "compilerOptions": {
 "target": "es5",
 "outDir": "./dist",
 "rootDir": "./src",
 "noEmitOnError": true,
 }
}
//index.ts
console.log("Hello World");

所以效果很好,

但是我想要 ES6 Map() 所以我将配置文件更改为:

{
 "compilerOptions": {
 "target": "es5",
 "outDir": "./dist",
 "rootDir": "./src",
 "noEmitOnError": true,
 "lib": ["es6"]
 }
}

然后我得到一个错误:

找不到名称“控制台”

下面是我的问题

Q1-es5、es6不是已经包含DOM API了吗?

Q2-如果 es5 和 es6 不包含 DOM API,如何第一次没有 lib 属性?

【问题讨论】:

    标签: javascript json typescript


    【解决方案1】:

    同时添加 dom 库 - 有关其他库,请参阅 here

    "lib": ["dom", "es6"]
    

    【讨论】:

    • 但是为什么在配置文件中根本没有“lib”属性的情况下第一次仍然有效?
    • 可能是默认值。
    【解决方案2】:

    TypeScript 的 lib 默认值基于您设置的 target

    它们记录在compiler options page
    (很遗憾我不能直接链接到它,搜索--lib 跳转到它)

    • ES5DOMES5ScriptHost
    • ES6DOMES6DOM.IterableScriptHost

    正如另一个答案所说,如果您手动指定lib,则必须确保包含您需要的默认值:

    "lib": ["dom", "es6"]
    

    如果您想知道其中一些库包含哪些内容,请查看TypeScript repo in the lib folder 上的文件本身。例如ScriptHostlib.scripthost.d.ts

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 2012-03-11
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      相关资源
      最近更新 更多