typescript 这2个函数对于相同的 联合字符串type 提示却不相同

image
image
image




图二对于keyof typeof ops 结果等价与图一的type ops(见图三) 为什么图一中编辑器却不能细致提示呢?
如果实际使用showOps这个函数的话图一还得去找ops定义,而图二直接可以知道参数是什么。

阅读 1.8k
2 个回答

image.png

你那个 keyof typeof ops 是因为没有名称(没有 type xxx = 给它命名),所以直接显示的详情。

使用枚举的话,用户会看到提示。不过要注意枚举写法,如下图的 Some2(也是你示例中的写法),其实是数值枚举,而不是字符串枚举。SomeType 这样写才是字符串枚举。

image.png

我的理解:
经过 keyof 操作就把类型名称这个信息给去掉了,而编辑器在有类型的时候,是优先提示类型的
至于你直接 hover 在类型上面,自然会提示类型本身的定义。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进