在 TypeScript 中,extends 关键字有多种用途:
1. 用于类的继承
示例:Child 类继承自 Parent 类,可以访问和重写父类的方法。
class Parent {
parentMethod() {}
}
class Child extends Parent {
childMethod() {}
}
2. 用于接口的扩展
示例:ExtendedInterface 接口继承了 BaseInterface 接口的属性,并添加了新的属性。
interface BaseInterface {
baseProperty: string;
}
interface ExtendedInterface extends BaseInterface {
extendedProperty: number;
}
3. 用于条件类型
示例:在条件类型中,根据类型是否可分配给指定的类型来决定最终的结果类型。
type ConditionalType<T> = T extends string ? number : boolean;
4. 用于泛型约束
示例:限制泛型参数的类型范围,确保其具有特定的属性或符合特定的结构。
function genericFunction<T extends { name: string }>(obj: T) {
// 可以确保传入的对象具有 'name' 属性
console.log(obj.name);
}