VSCode goto实现,goto定义,goto类型定义,区别

时间:2018-11-19 21:38:55

标签: visual-studio-code

我注意到VSCode具有以下内容

  • 转到实现
  • 转到定义
  • 转到类型定义

我对它们的工作方式有些困惑,有时它们甚至打开了一个窥视的定义。有人可以提供有关此用法的实际示例。我发现以下Difference between Goto Definition and Goto Implementation in Visual Studio,但缺少goto类型定义。

1 个答案:

答案 0 :(得分:0)

好吧,去类型定义完全符合它的意思。

VS Code documentation为我们提供了所有信息:

  

转到类型定义

     

某些语言还支持跳转到符号的类型定义   通过从任一编辑器运行“转到类型定义”命令   上下文菜单或命令面板。这将带您到   符号类型的定义。命令   editor.action.goToTypeDefinition未绑定到键盘快捷键   默认情况下,但是您可以添加自己的自定义键绑定。


关于您的问题:

  

有时他们甚至公开了一个偷看定义

当找到多个候选者时,将显示“窥视定义”弹出窗口,然后由您选择跳转的位置。

  

我对它们的工作方式有些困惑

这些术语对某些语言(例如C#)具有含义,并且完全支持VS Code。在其他语言(例如Ruby)中,尽管具有接口,但VS Code似乎不支持Go To Implementation。然后,您有了没有接口的JavaScript,在这种情况下,Go To Implementation路由到Go To Definition

  

有人可以提供有关此用法的实际示例。

您已经拥有Go To ImplementationGo To Definition,现在Go To Type Definition就行了(由于已经有一段时间我没有编码这种语言了,所以我可能在某些细节上是错误的) :

1: class Animal
2: end
3:
4: Animal dog = new Animal();

4行中:

  • Go To Type Definition在符号“ dog”上-> l1
  • Go To Definition在符号“狗”上-> l4
  • Go TO Definition上的符号“动物”-> l1