打字稿从给定的接口缩小类型

时间:2020-10-12 08:28:15

标签: typescript

在我正在研究的项目中,我们将GraphQL与

 __typename: "Specific" | "Normal"

属性。在此特定请求中,我只能获得__typename"Specific"的项目数组。 如何告诉Typescript我确实需要该接口,但是我确信__typename只能有一个值。

1 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,那么您有一个查询,您知道该查询只会返回__typename: "Specific"个项目,并且您希望相应地键入它们,而无需重复使用该属性的界面的所有其他方面。

为此,您可以定义一个新接口,如下所示:

type NarrowedInterface = OriginalInterface & {
  __typename: "Specific";
};

Playground link