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 target
es5
和使用
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/**/*"]
}