-4

在 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"
    ]
}
4

2 回答 2

0

你的文件扩展名是什么?如果是 .js,它应该将 this.abc() 智能感知为 javascript。

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

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

于 2021-01-14T01:54:04.493 回答
0

答案很简单,但很难找到:

将此行添加到tsconfig.json项目

  "compilerOptions": {
     ....
    "noImplicitThis": true
     ....
  }
于 2021-01-14T08:03:13.320 回答