Typescript/Intellisesnse(错误?)从另一个文件中获取变量 (lib.dom.d.ts)
Typescript/Intellisesnse (wrongly?) picking up variable from another file (lib.dom.d.ts)
今天我引用了一个 unnamed/undefined 变量,但 Typescript/Intellisense 没有捕捉到它,导致我的代码出现错误。变量名为“status”,Intellisense 从文件 /usr/share/code/resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts
中获取定义。 (我用的是LinuxUbuntu20.04)
更多详情:
我初始化了一个基本项目来演示错误(抱歉,我似乎无法 post 图片,因为声誉很低)
unamed "status" variable does not create error
单击“查找所有引用”后,我发现“状态”已在随机 lib.dom.d.ts 文件中声明
"status" has been declared in a random lib.dom.d.ts file
这似乎是因为我全局安装了 Typescript?我还在项目中安装了Typescript;两个安装都是最新版本“typescript@4.3.4”
我还检查了这是否只是一个 VSCode 特定的错误,但 Sublime Text 的 LSP-typescript 也发现了同样的错误定义。
我该如何解决这个问题?
我的tsconfig.json如下
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"removeComments": true,
"strict": true,
"noImplicitAny": false,
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"exlude": ["node_modules"]
}
类型定义正确。
它是 defined by window.status
(尽管已弃用),因此 status
在浏览器上下文中应被视为全局。
我 运行 昨天遇到了与 close
/window.close
相同的问题。
感谢@spender的回答,让我意识到这是Typescript的预期行为,是我受了委屈。
我通过在 tsconfig.json 中添加 "lib" option 解决了这个问题。似乎如果我排除“lib”选项,Typescript 将默认包含所有库。但我不希望“dom”库干扰我的后端代码,所以我使用:"lib": ["es2015"]
如果我以后使用“dom”库,我想我将不得不格外小心
今天我引用了一个 unnamed/undefined 变量,但 Typescript/Intellisense 没有捕捉到它,导致我的代码出现错误。变量名为“status”,Intellisense 从文件 /usr/share/code/resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts
中获取定义。 (我用的是LinuxUbuntu20.04)
更多详情:
我初始化了一个基本项目来演示错误(抱歉,我似乎无法 post 图片,因为声誉很低)
unamed "status" variable does not create error
单击“查找所有引用”后,我发现“状态”已在随机 lib.dom.d.ts 文件中声明
"status" has been declared in a random lib.dom.d.ts file
这似乎是因为我全局安装了 Typescript?我还在项目中安装了Typescript;两个安装都是最新版本“typescript@4.3.4”
我还检查了这是否只是一个 VSCode 特定的错误,但 Sublime Text 的 LSP-typescript 也发现了同样的错误定义。
我该如何解决这个问题?
我的tsconfig.json如下
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"removeComments": true,
"strict": true,
"noImplicitAny": false,
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"exlude": ["node_modules"]
}
类型定义正确。
它是 defined by window.status
(尽管已弃用),因此 status
在浏览器上下文中应被视为全局。
我 运行 昨天遇到了与 close
/window.close
相同的问题。
感谢@spender的回答,让我意识到这是Typescript的预期行为,是我受了委屈。
我通过在 tsconfig.json 中添加 "lib" option 解决了这个问题。似乎如果我排除“lib”选项,Typescript 将默认包含所有库。但我不希望“dom”库干扰我的后端代码,所以我使用:"lib": ["es2015"]
如果我以后使用“dom”库,我想我将不得不格外小心