VS Code 没有将关键字“this”链接到当前的 javascript 对象?
Posted
技术标签:
【中文标题】VS Code 没有将关键字“this”链接到当前的 javascript 对象?【英文标题】:VS Code not linking keyword "this" to current javascript object? 【发布时间】:2021-04-19 01:38:11 【问题描述】:在 VS Code 中,我正在用这段代码制作一个 js 文件
const ObjectX =
abc()
,
xyz()
this.abc()
,
当我输入 this.
并按 Ctrl + space
时,我希望 VS Code 会建议我使用 abc()
作为 this
的成员,但事实并非如此。
当我输入整行 this.abc()
然后在定义行按 F2
以重命名 abc()
时,VS Code 也不会将所有调用重命名为 this.abc()
。
所有 2 个事实都明确表明 VS Code 没有将关键字 this
链接到当前对象。这种行为很不方便,因为在另一台 PC 上再次安装 VS 会产生链接。
任何有此经验的人可以给我一行配置来修复 VS Code 吗?
PS1:这只是 VS Code 的糟糕编码体验,而不是 javascript 代码的工作方式!
PS2:我尝试过具有相同行为的 TypeScript。
PS3:我有最新版本的 VSCode 的智能感知,我的 jsconfig.json
看起来像这样
"compilerOptions":
"target": "es6",
"module": "commonjs",
"experimentalDecorators": true
,
"exclude": [
"node_modules",
".vscode",
"library",
"local",
"settings",
"temp"
]
【问题讨论】:
查看 TypeScript 以投射对象 @sonEtLumiere 尝试过 TypeScript。同样的行为。 这是打字稿的设计行为。 VSCode 使用 ts 来支持 js 语言,因此你看到的结果。 @hackape 那么为什么我在另一个 VS Code 安装中看到了不同的行为? 【参考方案1】:您的文件扩展名是什么?如果是 .js,它应该将 this.abc() 智能感知为 javascript。
在 VS.Code 下打开文件时语言模式显示什么。语言模式显示在右下角。如果它没有将“JavaScript”显示为语言模式,您可以单击它并更改为 JavaScript。默认为自动检测。 您也可以按 Ctrl-K 然后按 M 键来调出语言模式。
请看这里:https://code.visualstudio.com/docs/languages/overview#_changing-the-language-for-the-selected-file
【讨论】:
我将代码保存在文件扩展名 = ".js" 中。是的。它应该但它没有。这就是我在这里发布问题的原因:) 检查语言模式,因为我在上面编辑了我的答案。 谢谢,但不是“自动检测”而是“javascript” 我可以找到 3 个控制设置文件:默认设置、用户设置和工作区设置。您可以检查每一个并将它们与另一个安装上的一个进行比较。打开默认设置文件:查看->命令面板->首选项:打开默认设置(JSON)。打开用户设置文件:View->Command Pallette->Preferences:Open Settings (JSON),打开工作区设置文件:View->Command Pallette->Preferences:Open Workspace Settings (JSON)。 非常感谢您的深入挖掘。我会尝试比较它们!【参考方案2】:答案很简单,但很难找到:
将此行添加到项目的tsconfig.json
"compilerOptions":
....
"noImplicitThis": true
....
【讨论】:
以上是关于VS Code 没有将关键字“this”链接到当前的 javascript 对象?的主要内容,如果未能解决你的问题,请参考以下文章
在File Explorer的当前路径上直接打开VS Code