后边那些是 一些对象 event
使用这种方式按理来说 这样写e 应该是有提示的 但是没有任何提示 case 中 不是确定了 是哪个key吗?
这个是使用, 看着没有问题
如何处理 使得 在case中有对应key 的提示呢?
示例
这有个示例 1. 会有报错 2. 也没有对应的类型 提示 对应 case 的类型提示
后边那些是 一些对象 event
使用这种方式按理来说 这样写e 应该是有提示的 但是没有任何提示 case 中 不是确定了 是哪个key吗?
这个是使用, 看着没有问题
如何处理 使得 在case中有对应key 的提示呢?
示例
这有个示例 1. 会有报错 2. 也没有对应的类型 提示 对应 case 的类型提示
你定义startEvent的时候,先是解析泛型T,这时key的类型T对应的Moveableevents的索引类型相当于'scale'|'click|...'等等字符串字面量类型,e对应的的OnScale|Onclick|...等等事件类型,再进入函数体中,switch case语句实际上是对key类型进行判断,e和key的类型对于编译器来说是没有关系的。当你下面执行startevent的时候,key被赋值为'dragstart',泛型T此时将被确定为字面量类型'dragstart',故而e的类型也跟随T收缩。你如果想在case中获得e事件相关提示,我建议你直接对e相关属性进行判断。我感觉你这种写法不太合理,不知道使用场景能具体一点吗
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
这样子判断
key
是没办法收窄类型:参照文复杂类型的收窄https://www.typescriptlang.or...
如: