VS Code 没有将关键字 "this" 链接到当前 javascript 对象?

VS Code not linking keyword "this" to current javascript object?

在 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 不会 link 当前对象的关键字 this。这种行为很不方便,因为在另一台 PC 上再次安装 VS 会执行 links.

任何遇到过这种情况的人都可以给我一行配置来修复 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"
    ]
}

您的文件扩展名是什么?如果它是 .js 它应该 intellisense this.abc() as javascript.

在VS.Code下打开文件时语言模式显示什么。语言模式显示在右下角。如果它没有显示“JavaScript”作为语言模式,您可以单击它并更改为 JavaScript。默认为自动检测。 您也可以按 Ctrl-K,然后按 M 键调出语言模式。

看这里:https://code.visualstudio.com/docs/languages/overview#_changing-the-language-for-the-selected-file

答案很简单但很难找到:

将此行添加到项目

tsconfig.json
  "compilerOptions": {
     ....
    "noImplicitThis": true
     ....
  }