如何在 VSCode、TypeScript 中查看悬停时的完整类型定义?

Posted

技术标签:

【中文标题】如何在 VSCode、TypeScript 中查看悬停时的完整类型定义?【英文标题】:How to view full type definition on hover in VSCode, TypeScript? 【发布时间】:2020-08-08 06:45:17 【问题描述】:

在 VSCode 中将鼠标悬停在变量或函数上通过显示其类型非常有用。但是,在某些用例中,我希望查看变量的完整类型定义,而不仅仅是类型别名。

例如:使用完整类型的 UseState 将允许我查看变量活动的完整类型:

.

但我真的很想推断该类型定义并将其导出,以便其他组件也可以使用它。所以当我把事情改成这样时: 并将鼠标悬停在变量上,它只显示类型别名。如何让 TypeScript 或 VSCode 发出类型别名的完整类型定义?谢谢!

【问题讨论】:

您是否尝试过右键单击并选择转到定义? 是的,这样做后,它有时会将我发送到我使用该变量的位置,有时它会显示使用它的其他位置。虽然有用,但我经常使用泛型,如果编辑器向我显示该部分,那么所有类型定义都会丢失。 你试过 command/super + hover 吗? 是的。命令悬停仍然只显示类型别名。超级?? 嗯,这个还没解决。我遇到了同样的问题,找不到任何解决方案。 【参考方案1】:

右键单击并单击go to Type Definition 应该始终将您带到打字稿类型。

【讨论】:

当类型未在某处手动显式定义时,情况并非如此【参考方案2】:

很遗憾,我认为你想要的不可能。

VSCode 的悬停功能只是为了给你一个关于值的快速类型信息,而不是完整的类型。事实上,我相信这个功能是由 TypeScript 直接驱动的,所以 VSCode 无法控制显示的内容......

最后一点是显示的大小是有限的(可能出于性能原因),所以即使在显示类型定义的情况下,如果它太长,它有时也会简单地截断它。

【讨论】:

以上是关于如何在 VSCode、TypeScript 中查看悬停时的完整类型定义?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Vetur 和 TypeScript 在 VSCode 中同时显示打字稿警告?

如何在 Vscode 中的 Typescript 中等待后调试代码?

如何在没有“N more”和“...”的情况下查看完全扩展的 TypeScript 类型?

如何强制 VSCode 使用本地安装的 TypeScript

如何在 Node+Typescript+VSCode 中查找 Async 函数调用中缺少的 Await?

如何在 vscode 中使用一个(或两个)快捷方式在 TypeScript 和 HTML 之间切换?