文章目录
使用泛型+type
定义类型函数
使用type
+泛型,可以定义类型函数:
type foo<T> = T;
type bar = foo<string>
可以对泛型入参进行约束、设置默认值
// 对入参进行约束
type foo<T extends string> = T;
type bar = foo<string>
// 设定默认值
type foo<T extends string = '123'> = T;
type bar = foo<string>
条件判断
TypeScript中使用extends
进行类型判断,与三元运算符很相似:
T extends U ? X : Y;
如果T
的类型能够extends U
,结果返回X
,否则返回Y
。
结合上面的类型函数,可以进行扩展:
type num = 1;
type str = 'hello world';
type IsNumber<N> = N extends number ? 'yes is a number' : 'no not