首页 > 解决方案 > 我可以在 Typescript 中扩展接口的一部分吗?

问题描述

假设我有一个界面:

// I get this from an external library so I have no control over it
interface Balloon {
  diameter: number;
  color: "red" | "blue" | "green";
}

我想创建自己的界面,如下所示:

interface Shirt {
  size: "m" | "l" | "xl";
  color: "red" | "blue" | "green";
}

我的问题是是否可以从 Balloon 中“取出”颜色部分并将其注入到 Shirt 中,所以我得到了这样的东西:

interface Shirt {
  size: "m" | "l" | "xl";
  color: Balloon.color; // I know this is wrong but it is to illustrate what I want to achieve
}

标签: typescript

解决方案


interface Balloon {
    diameter: number;
    color: "red" | "blue" | "green";
}


type Shirt = {
    size: "m" | "l" | "xl";
} & Pick<Balloon, 'color'>

type Check = Shirt['color'] // "red" | "blue" | "green"

操场

在这里您可以找到更多实用程序类型


推荐阅读