首页 > 解决方案 > 打字稿从给定接口缩小类型

问题描述

在我正在进行的项目中,我们使用 GraphQL

 __typename: "Specific" | "Normal"

财产。在这个特定的请求中,我只能得到一个带有 of 的项目__typename数组"Specific"。我如何告诉 Typescript 我想要那个界面,但我确信它__typename只能有那个值。

标签: typescript

解决方案


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

为此,您可以像这样定义一个新接口:

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

游乐场链接


推荐阅读