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. 约束:父接口的属性类型约束也会被子接口继承

相关推荐
离陌在学C#4 小时前
C# 异步编程:从 async/await 到 Task 实战指南
开发语言·数据库·c#
羚尔4 小时前
C语言数组
c语言·开发语言
东坡白菜5 小时前
windows下使用Trae启动java项目遇到的乱码问题
java
SQL-First布道者5 小时前
⚡Spring JDBC 完整体系 · 第 10 集 · 手搓 `BaseCondition`
java·spring boot·后端·spring·mybatis·spring jdbc
珍珠先生5 小时前
第9章 JDK 11 新特性:var 与便捷新 API
java
女神下凡5 小时前
芯参谋(11): 各种存储芯片电路设计
开发语言·嵌入式硬件
hoho_125 小时前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
冬夜戏雪5 小时前
笔试的Scanner in Scanner out
java·开发语言
南城以南溫暖如初1475 小时前
社交裂变商城系统设计与实战开发指南
java·spring boot·mysql·vue·mybatis
Zane1994125 小时前
HashSet、TreeSet、LinkedHashSet:底层都是“套壳“
java·开发语言