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 对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 VS Code 中意外点击装订线

在File Explorer的当前路径上直接打开VS Code

使用VS Code推送代码到GitHub

VS Code配置链接库文件

在 VS Code 终端中使用“flutter run”时,终端会自动切换到当前工作目录

Windows将VS Code注册添加到右键菜单面板中