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

TypeScript未正确执行类型推导的原因咨询

TypeScript未正确执行类型推导的原因咨询

最近写TypeScript的时候碰到了个类型推导的坑,搞了半天没弄明白为啥预期的推导逻辑没生效,先把我的类型定义贴出来:

type Type1<V> = {type: "type-1", v: V, foo?: (v: V) => void};  
type Type2<K, G> = {type: "type-2", k: K, g: G, foo?: (k: K, g: G) => void};  
type ArgsFactory<T> = (
    T extends Type1<infer V> ? Type1<V>
        : T extends Type2<infer K, infer G> ? Type2<K, G>
            : T extends (Type1<unknown> | Type2<unknown, unknown>)
                ? T
                : Type1<unknown> | Type2<unknown, unknown>
);

我本来想着ArgsFactory<T>能根据传入的T类型,精准匹配对应的Type1或Type2分支,自动提取出V、K、G的具体类型,但实际测试的时候发现,类型推导要么直接落到最后的联合类型分支,要么没法正确识别泛型参数。有没有大佬能帮忙分析下这是哪里的问题呀?

备注:内容来源于stack exchange,提问作者Cristofer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 16:50:29