【问题标题】:What is the meaning of error TS2584 (TS) .... Try changing the 'lib' compiler option to include 'dom'?错误 TS2584 (TS) 是什么意思....尝试更改“lib”编译器选项以包含“dom”?
【发布时间】:2020-02-24 15:29:44
【问题描述】:

我用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

【问题讨论】:

标签: typescript visual-studio-2019 document.write


【解决方案1】:

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

另一个选项是指定编译器使用的库:

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

这也应该使错误消失。

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

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

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

【讨论】:

    【解决方案2】:

    感谢大家的帮助。

    我为我的问题找到了另一个简单的解决方案。 我意识到我正在为我的项目创建错误的解决方案类型。 我添加了这个扩展:“Typescript Html application Template”并将其用于 TS 项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多