Javascript Typescript找不到名称窗口或文档
无论哪种情况:Javascript Typescript找不到名称窗口或文档,javascript,typescript,typescript2.0,Javascript,Typescript,Typescript2.0,无论哪种情况: document.getElementById('body'); // or window.document.getElementById('body'); 我收到错误TS2304:找不到名称“窗口”。 对于我应该安装的定义文件,我是否在tsconfig.json中遗漏了什么 我在运行tsc和vscode tsconfig.json: { "compilerOptions": { "allowJs": true, "emitDecorat
document.getElementById('body');
// or
window.document.getElementById('body');
我收到错误TS2304:找不到名称“窗口”。
对于我应该安装的定义文件,我是否在tsconfig.json
中遗漏了什么
我在运行tsc
和vscode
tsconfig.json:
{
"compilerOptions": {
"allowJs": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"jsx": "react",
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true,
"noImplicitAny": false,
"sourceMap": true,
"suppressImplicitAnyIndexErrors": true,
"target": "ES2016",
"typeRoots": [
"node_modules/@types/",
"typings/index.d.ts"
]
},
"exclude": [
"node_modules",
"**/*-aot.ts"
]
}
我的答覆是:
对于使用
tsconfig.json
I targetes5
和使用lib:[“es2015”,“dom”]
似乎问题是由定位ES2016
引起的你把目标锁定是有原因的吗?如果以es6为目标,错误可能会消失 另一个选项是指定编译器要使用的库:
tsc -t ES2016 --lib "ES2016","DOM" ./your_file.ts
这也会使错误消失
我不确定为什么默认情况下不使用lib,在it状态下使用--lib
选项:
注意:如果未指定--lib,将插入默认库。这个
注入的默认库为:► For——目标ES5:DOM、ES5、ScriptHost
► For--目标ES6:DOM、ES6、DOM.Iterable、ScriptHost 但是它没有说明在瞄准
ES2016
这可能是一个错误,请尝试打开一个问题,如果确实存在,请在此处共享链接。使用
"lib": ["dom"]
在tsconfig.json中
e、 g
你从哪里得到这个错误的?在IDE中,还是在运行
tsc
时?您当前的tsconfig.json
文件是什么?如果需要,您需要提供更多相关信息help@NitzanTomer我添加了您要求的信息。瞄准ES6成功了!我最初的目标是ES2016,因为我计划将生成的javascript放在webpack中,所以我认为这不会有太大的区别。对我来说,--lib
s必须显式声明,而不是一些任意的默认值。我在VSCode中的代码时遇到了同样的问题,使用在tsconfig.json和tsconfig.app.json中切换到“es6”都无法解决此问题;将“dom”添加到tsconfig.json中(它已经在tsconfig.app.json中)也没有。没有编译时或运行时错误,但红色的Swiggly在编码时很烦人。@S.Greylyn如果没有编译错误,则是VSCode的问题。我从未使用过它。@S.Greylyn在tsconfig.json
中使用“lib”:[“dom”]
。这对我起了作用。这就是我解决问题的原因。应该是可以接受的答案,因为在某些情况下(已经为您运行tsc
的初学者工具包或工具),您不太容易更改传递给它的CLI参数,但您几乎可以肯定控制tsconfig.json
),我已将其添加到我的库中,但它仍然不起作用。“lib:[“es5”、“es6”、“dom”、“dom.iterable”、“esnext”],相同的@AdharshM…我想知道最近有没有问题?我也遇到了一个问题,我的代码工作正常,然后就没有了,但我没有更改任何与TS相关的内容,并且已经在使用dom
。我将尝试使用旧版本的TS,我昨天更新了(但没有注意到这个问题,因为)@AdharshM这可能是因为,至少对我来说是这样。
{
"compilerOptions": {
"lib": ["es5", "es6", "dom"],
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es6",
"moduleResolution": "node",
"jsx": "react"
},
"include": ["./src/**/*"]
}