You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:33:12