在 TypeScript 中,extends 关键字用于接口继承,表示一个接口可以继承另一个接口的属性和方法。
📌 代码解析
typescript
interface FlatTableData extends buildingManagementListType { _floorId: string; _unitIndex: number; _floorUnitCount: number; }
这行代码的意思是:
-
FlatTableData接口继承了buildingManagementListType接口的所有属性 -
同时添加了三个新的属性 :
_floorId、_unitIndex、_floorUnitCount
🔍 三种理解方式
1. 集合论角度(最直观)
typescript
// 可以理解为属性的并集
type FlatTableData = buildingManagementListType & {
_floorId: string;
_unitIndex: number;
_floorUnitCount: number;
}
2. 面向对象角度
typescript
// 类似于类的继承
class buildingManagementListType {
buildingId: string;
buildingName: string;
// ...
}
class FlatTableData extends buildingManagementListType {
_floorId: string;
_unitIndex: number;
_floorUnitCount: number;
}
🎨 多层继承
typescript
// 可以有多层继承
interface BaseBuilding {
buildingId: string;
}
interface buildingManagementListType extends BaseBuilding {
buildingName: string;
address: string;
}
interface FlatTableData extends buildingManagementListType {
_floorId: string;
_unitIndex: number;
_floorUnitCount: number;
}
⚠️ 注意事项
1. 不能覆盖(重写)属性类型
2. 可选属性的继承
3. 多个接口继承
📝 总结
extends 在 TypeScript 接口中的含义:
-
继承:子接口获得父接口的所有属性
-
扩展:可以在继承的基础上添加新属性
-
兼容:子接口类型的对象可以赋值给父接口类型
-
约束:父接口的属性类型约束也会被子接口继承