Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 780 Bytes

条件类型.md

File metadata and controls

29 lines (19 loc) · 780 Bytes

条件类型的基本使用

function sum<T extends number | string>(num1:T, num2:T):T extends number ? number : string
function sum(num1, num2){
    return num1 + num2
}

在条件类型中进行推断infer

可以通过infer推断出类型,配合三元运算符使用可以引用推断出的结果

type ParamsType<T extends (...args: any[])=>any> = T extends (...args:infer A) => any ? A : never

分发类型

在泛型中使用条件类型时,如果传入一个联合类型,就会进行分发

type toArray<T> = T extends any ? T[] : never
type newArray = toArray<number | string>

这样得到的结果就是type newArray = string[] | number[], 而不是type newArray = (string | number)[]