首页 > 解决方案 > VS Code JS:为什么/什么时候定义中断?

问题描述

我将 VS Code 用于 JavaScript。
文件中的定义有时有效,但有时无效。有谁知道他们为什么失败?在这个例子中,VS Code很容易
找到它的定义。edit在此文件的其他任何地方都没有出现“某事”一词。完全独一无二。那么,为什么 VS Code 找不到它的定义呢?

在此处输入图像描述

如果我知道原因,也许我可以更改我的代码来解决它。

VS Code 也找不到对这些“丢失”属性的任何引用。这对于跟踪调用函数的位置等非常令人沮丧。

在此处输入图像描述

标签: javascriptvisual-studio-code

解决方案


你应该使用this.

const edit = {
  something: 5,
  test() {
    this.something;
  },
};

您不能将箭头函数用于test字段,或者this将指向其他地方而不是edit对象。

编辑:在撰写本文时最新版本的 TS 的 TypeScript 4.3.5 中,TS 能够检测对象文字中的自引用,并且两者都edit.something可以this.something工作。对于使用 JavaScript 的情况,升级 VS Code 应该可以解决问题。

一个 TS 操场链接供参考。


推荐阅读