为什么我使用函数泛型参数,而其他类型的泛型却具有编译错误?

时间:2019-01-02 03:05:17

标签: typescript

我定义一个带有签名<U extends UU, UU>和类型type T04<F extends FF, FF> = T03<F> extends T03<FF> ? number : string;的函数,然后使用U和UU作为该类型的通用类型参数。像往T04正常传递"aaa"string一样,我会得到number类型,因此如果将UUU传递给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

0 个答案:

没有答案