Typescript从给定接口中缩小类型



在我正在进行的项目中,我们将GraphQL与一起使用

__typename: "Specific" | "Normal"

财产。在这个特定的请求中,我只能获得__typename"Specific"的项目数组。我如何告诉Typescript我想要的正是那个接口,但我确信__typename只能有那个值。

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

要做到这一点,您可以定义一个新的接口,如下所示:

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

游乐场链接

最新更新