-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
在 ts
中,经常会用到类型约束,用来确保使用的类型是正确的,介绍 4
种类型约束
-
传入只能是数组,在传入的时候做约束,这种约束见的比较多
type A<T extends unknown[]>
-
利用
extends
条件类型进行类型约束// 如果 T 是 string,则输出 T // 如果 T 不是 string,则输出 never type B<T> = T extends string ? T : never;
-
利用联合类型进行条件约束
// 如果 T 是 string,则输出 T // 如果 T 不是 string,则输出 never type C<T> = T & string;
-
typescript 4.7
推出了一个新的条件约束,利用extends
语法// F 进行了类型约束,是 string 类型 type D<T extends unknown> = T extends [ infer F extends string, ...infer Rest ] ? F : never; // 在 4.7 之前,如果要保证 F 是 string 类型要用联合类型的形式 type D<T extends unknown> = T extends [ infer F, ...infer Rest ] ? F & string: never;
Metadata
Metadata
Assignees
Labels
No labels