extends

在 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 接口中的含义:

  1. 继承:子接口获得父接口的所有属性

  2. 扩展:可以在继承的基础上添加新属性

  3. 兼容:子接口类型的对象可以赋值给父接口类型

  4. 约束:父接口的属性类型约束也会被子接口继承

相关推荐
秋930 分钟前
OceanBase与GreatSQL在Java应用中的性能调优方法有哪些?
java·开发语言·oceanbase
澈20733 分钟前
C++多态编程:从原理到实战
开发语言·c++
今天又在写代码40 分钟前
并发问题解决
java·开发语言·数据库
聆风吟º41 分钟前
【C标准库】深入理解C语言strcat函数:字符串拼接的利器
c语言·开发语言·strcat·库函数
带娃的IT创业者1 小时前
深度解析:从零构建高性能 LLM API 中转网关与成本优化实战
开发语言·gpt·llm·php·高性能·成本优化·api网关
老王以为1 小时前
前端视角下的 Java
java·javascript·程序员
看腻了那片水1 小时前
开源一个对业务代码零侵入的透明数据治理框架 —— 【sangsang】
java·mybatis
TechWayfarer1 小时前
IP归属地运营商能解决什么问题?风控/增长/数据平台落地实践(附API代码)
开发语言·网络·python·网络协议·tcp/ip
Nyarlathotep01131 小时前
JUC工具(3):StampedLock的基础和原理
java·后端