关于typescript中的extends和infer以及用法
warning:
这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
在TypeScript中,extends关键字被用于实现泛型类型和接口约束,而infer关键字则用于类型推断。
- 泛型约束:
interface A<T> {
value: T;
}
interface B<T> extends A<T> {
extra: T;
}在这个例子中,接口B继承了接口A,并添加了一个新的属性extra。
- 类型推断:
type A<T> = T extends any ? T : never;在这个例子中,infer关键字用于从泛型类型中推断出T的类型。
- 泛型类型推断:
type B<T> = T extends { a: infer U } ? U : never;在这个例子中,如果T具有属性a,那么infer U将会是T.a的类型,并且这个类型将用来构建B的结果类型。
注意:infer关键字只能在泛型类型中的extends子句中使用,并且必须直接作用于类型参数。
评论已关闭