TypeScript中为泛型回调添加参数后类型解析为never的问题求助
TypeScript中为泛型回调添加参数后类型解析为never的问题求助
各位大佬好,我最近在折腾一个通用函数,想通过匹配回调返回值里的响应键来实现动态响应处理,本来一切都好好的,但遇到了个头疼的问题——只要给回调函数加上参数,相关的类型就突然解析成never了,不加参数的时候类型推导完全正常。
先贴一下我目前写的两个工具类型:
type KeysMatchingType<T, V> = { [K in keyof T]: T[K] extends V ? K : never; }[keyof T]; type ExtractItems<R, IK extends keyof R> = R[IK] extends readonly (infer T)[] ? T : never;
具体来说,当回调函数是无参的时候,KeysMatchingType能正确找出T中类型为V的键,ExtractItems也能正常从数组类型里提取出元素类型,但一旦我给回调加上参数(比如传入一个上下文对象或者额外的配置参数),整个推导出来的类型就变成never了,完全没法用。
有没有大佬能帮我分析下这是哪里出问题了?或者有没有什么办法可以解决这个问题,让带参数的泛型回调也能正确推导类型?
内容来源于stack exchange
相关产品推荐
相关产品推荐

