错误 TS2584 (TS) .... 的含义是什么?尝试更改“lib”编译器选项以包含“dom”?

Uri*_*oss 11 document.write typescript visual-studio-2019

我使用 VS 并编写 Typescript

我想简单地键入命令“document.write”而不会出现错误代码。我现在得到的是这个命令“文档”的错误代码。我只是不想陷入复杂的问题,因为可以有一个简单的解决方案(我在以前的 PC 和 VS 上没有遇到这个问题)。

错误消息:错误 TS2584 (TS) 找不到名称“文档”。您需要更改目标库吗?尝试更改lib编译器选项以包含“dom”。C:\webdevelopment\studies\typescript\replaceCharsInArray\replaceCharsInArray(tsconfig 或 jsconfig 项目) C:\webdevelopment\studies\typescript\replaceCharsInArray\replaceCharsInArray\app.ts 9 活动

let arr: string[] = ['black ofram','american walnut'];
function replaceCharsInStringArray(arr: string[], oldChar:string, newChar:string): string[] {
    for (let i = 0; i >= arr.length - 1, i++;) {
        arr[i] = arr[i].replace(newChar, oldChar);
        return arr;
    };
}
arr = replaceCharsInStringArray(arr, ' ', '_');
document.write

Run Code Online (Sandbox Code Playgroud)

Aka*_*ash 11

添加到我的工作财产"DOM"列表:libcompilerOptionstsconfig.json

{

  "compilerOptions": {
      lib: ["ES2017", "DOM"]
  }
}

Run Code Online (Sandbox Code Playgroud)

lib 的文档


小智 8

正如对此问题的回答。\n问题似乎是由针对 ES2016 引起的。\n您的目标是有原因的吗?如果你的目标是 es6,错误可能会消失。

\n\n

另一种选择是指定编译器要使用的库:

\n\n

tsc -t ES2016 --lib "ES2016","DOM" ./your_file.ts

\n\n

这也应该使错误消失。

\n\n

我不确定为什么默认情况下不使用库,在编译器选项的文档中它为 --lib 选项声明:

\n\n

注意:如果未指定 --lib,则会注入默认库。注入的默认库是:
\n\xe2\x96\xba 对于 --target ES5:DOM,ES5,ScriptHost
\n\xe2\x96\xba 对于 --target ES6:DOM,ES6,DOM.Iterable,ScriptHost

\n\n

但它没有说明针对 ES2016 时的默认库是什么。\n这可能是一个错误,请尝试提出问题,如果确实如此,请在此处共享链接。

\n