我定义一个带有签名<U extends UU, UU>
和类型type T04<F extends FF, FF> = T03<F> extends T03<FF> ? number : string;
的函数,然后使用U和UU作为该类型的通用类型参数。像往T04正常传递"aaa"
和string
一样,我会得到number
类型,因此如果将U
和UU
传递给T04,我会得到number
类型,但没有得到我期望的类型。为什么会这样?
打字稿:3.2.0
function fn1<U extends UU, UU>() {
type T03<T> = {
action: T;
};
type T04<F extends FF, FF> = T03<F> extends T03<FF> ? number : string;
let v2: T04<"aaa", string> = 222;
let v3: T04<U, UU> = 78787;
}
期望v3'类型为number