TypeScript如何在一个interface内复用已预先定义的其他interface?
TypeScript interface 复用问题解答
在TypeScript中完全支持在interface内部复用其他已定义的interface作为字段类型,你写的示例代码本身就是正确的复用逻辑。
TypeScript的类型系统天然支持接口的组合复用,你可以像使用string、number这类基础类型一样,直接把已定义的interface作为字段的类型标注使用。你给出的api_data接口已经实现了需求:所有被标注为api_data类型的对象,其details字段必须完全符合details_接口的结构,amount字段必须完全符合amount_接口的结构,不符合结构的赋值会直接触发TypeScript的类型错误。
以下是对应接口的正确使用示例:
// 符合类型规范的示例对象 const requestData: api_data = { details: { id: 2024, name: "用户信息" }, amount: { amount: 100, type: "积分" } }
如果你需要把其他interface的属性直接合并到当前interface作为顶层字段,而非嵌套为子字段,也可以使用extends关键字实现继承复用:
// 继承多个interface的写法 interface api_data extends details_, amount_ { // 额外扩展自定义字段 updateAt: string } // 此时api_data类型的对象结构如下: const data: api_data = { id: 2024, name: "用户信息", amount: 100, type: "积分", updateAt: "2024-01-01" }
内容的提问来源于stack exchange,提问作者riaz
相关产品推荐
相关产品推荐

