You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中能否选择性继承接口并重定义属性类型?

TypeScript中能否选择性继承接口并覆盖属性类型?

你提到的场景里,接口A和B仅address属性的类型不同,想通过继承A并修改该属性类型的方式定义B,答案是可以,但需要修正语法错误:继承关键字是extends而非extend。

正确的定义方式如下:

interface A { 
  id: string;
  name: string;
  gender: string;
  address: string[];
}

interface B extends A { 
  address: number[];
}

这样定义后,接口B会继承A的id、name、gender属性,同时将address的类型覆盖为number[],完全匹配你需要的结构。

需要注意的是,TypeScript允许接口在继承时重写属性类型,哪怕新类型与原类型不兼容(比如这里的string[]和number[]),这一点和类的继承规则不同——类继承时重写属性必须保证类型兼容。

内容的提问来源于stack exchange,提问作者user21357723

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:25:08