这个问题可能与 this one 有关,但我的不是关于版本3.0的,而且不仅仅是关于导入。
搜索词
枚举、描述、定义、弹出窗口、工具提示、VS Code、界面、建议
建议
在枚举和接口上悬停时,应显示它们的定义,即:我有一个枚举(或接口):
enum enumName {
ONE = 1;
TWO = 2;
THREE = 3;
}
如果我悬停在这个枚举上,无论我在哪里使用它(无论是将其导入到另一个文件还是在声明的地方本地使用),我都希望看到这个枚举是关于什么的(本质上是什么属性)。
我现在在悬停在枚举或接口上时看到的是:
作为解决方法,我目前需要在枚举声明上方添加这种类型的JSDoc注解。
/** Props:
* @param ONE 1;
* @param TWO 2;
* @param THREE 3;
*/
这将生成:
用例
这个功能可以节省时间和精力。
当前方法的缺点是要么需要添加 ${2+numberOfEnumProperties} lines
的注解,要么去文件中找到声明枚举的地方,然后熟悉它的属性。
示例
检查清单
我不太有经验来回答下面的问题。
- 这不会对现有的TypeScript / JavaScript代码造成破坏性的变化
- 这不会改变现有JavaScript代码的运行时行为
- 这可以在不根据表达式的类型发出不同的JS的情况下实现
- 这不是一个运行时特性(例如新的表达式级语法)
5条答案
按热度按时间0s0u357o1#
此外,如果我有一个接口,它扩展了另一个接口:
当我在某个地方使用
interface Two
并悬停在它上面时,我会得到与我在初始帖子中的第二个截图中相同的枯燥描述,即没有指定属性的描述,甚至不显示它扩展了哪些接口。zdwk9cvp2#
我同意。悬停在一个类型名称上以获得带有相同文本的弹出窗口相当无用。我们可以做得更好。
iovurdzv3#
我发现接口和枚举的类型信息基本上是无用的,这真的很烦人。它还会影响所有IDE在显示定义时的情况。请看这个JetBrains IDE的例子:https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FWEB-44531
fykwrbwg4#
请有人指出代码库中这些定义是在哪里创建的,尤其是类型和接口之间的区别。然后也许社区中的某人可以查看如何采取行动。
wmomyfyw5#
我解决这类问题的方法是启用TSServer日志记录,执行你感兴趣的操作,然后查看发出了哪些请求:
因此,这个请求是一个
quickinfo
- 在代码库中进行搜索找到的getQuickInfoAtPosition
- 这是代码开始的地方 - 我打赌,你要找的代码在SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind
。