首页 > 解决方案 > 错误 TS2584 (TS) 是什么意思....尝试更改“lib”编译器选项以包含“dom”?

问题描述

我使用 VS 并编写 Typescript

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

错误消息:错误 TS2584 (TS) 找不到名称“文档”。您需要更改目标库吗?尝试更改lib编译器选项以包含“dom”。C:\web development\studies\typescript\replaceCharsInArray\replaceCharsInArray(tsconfig 或 jsconfig 项目) C:\web development\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

标签: typescriptvisual-studio-2019document.write

解决方案


正如对这个问题的回答。似乎问题是由针对 ES2016 引起的。你瞄准那个是有原因的吗?如果您以 es6 为目标,则错误可能会消失。

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

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

这也应该使错误消失。

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

注意:如果未指定 --lib,则注入默认库。注入的默认库是:
► For --target ES5: DOM,ES5,ScriptHost
► For --target ES6: DOM,ES6,DOM.Iterable,ScriptHost

但它没有说明针对 ES2016 时的默认库是什么。这可能是一个错误,尝试打开一个问题,如果你这样做,请在此处分享链接。


推荐阅读