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
相关产品推荐
相关产品推荐

