TypeScript 5.4.x类型索引报错:疑似回归问题求助
TypeScript 5.4.x 类型索引回归问题
问题背景
TypeScript 5.4.x版本存在类型系统回归:原本在5.3.3版本可正常编译的代码,升级到5.4.x后出现类型错误。此前社区反馈过同类问题并已修复,但本次问题在最新修复版本中仍未解决。
问题详情
在以下场景中触发错误:
- 通过
TupleToIntersection将元组类型转换为交叉类型,提取其键名 - 使用
ExtractSelectorPropertyName转换上述键名 - 尝试用转换后的键名索引
Partial<SelectorValuesCollection>类型对象
编译器报错:
Type 'ExtractSelectorPropertyName<keyof TupleToIntersection<{ [I in keyof T]: T[I][3]; }>>' cannot be used to index type 'Partial
'.(2536)
实际测试验证,转换后的键名与SelectorValuesCollection的键类型完全匹配,但编译器无法识别该等价关系。
核心矛盾
类型定义上,ExtractSelectorPropertyName处理后的键集合是SelectorValuesCollection键集合的子集,但TypeScript 5.4.x的类型推导无法建立这一层关联,导致索引操作被判定为非法。
内容的提问来源于stack exchange,提问作者Dellirium
相关产品推荐
相关产品推荐

