我是 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"]
}
}
然后我得到一个错误:
cannot find name 'console'
下面是我的问题
Q1-es5、es6不是已经包含DOM API了吗?
Q2-如果 es5 和 es6 不包含 DOM API,为什么它在没有 lib 属性的情况下第一次工作?
最佳答案
TypeScript 的默认值为 lib
基于target
您已设置。
它们记录在 compiler options page 上
(不幸的是我无法直接链接到它,搜索 --lib
跳转到它)
- ES5:
DOM
,ES5
,ScriptHost
- ES6:
DOM
,ES6
,DOM.Iterable
,ScriptHost
正如另一个答案所说,如果您指定 lib
手动,您必须确保也包含您需要的默认值中的内容:
"lib": ["dom", "es6"]
如果您想知道其中一些库包含哪些内容,请查看 TypeScript repo in the lib
folder 上的文件本身。例如ScriptHost
是 lib.scripthost.d.ts
关于javascript - lib 属性是否覆盖 tsconfig.json 中的目标属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57916751/