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

相关推荐
一直不明飞行1 小时前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
REDcker1 小时前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
盲敲代码的阿豪1 小时前
Python 入门基础教程(爬虫前置版)
开发语言·爬虫·python
你的保护色2 小时前
【无标题】
java·服务器·网络
basketball6162 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
互联科技报2 小时前
2026超融合选型:Top5品牌与市场格局解读
开发语言·perl
weixin199701080162 小时前
[特殊字符] 智能数据采集:数字化转型的“数据石油勘探队”(附Python实战源码)
开发语言·python
淘矿人2 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
想唱rap3 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
小江的记录本3 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展