typescript - 打字稿从给定接口缩小类型
问题描述
在我正在进行的项目中,我们使用 GraphQL
__typename: "Specific" | "Normal"
财产。在这个特定的请求中,我只能得到一个带有 of 的项目__typename
数组"Specific"
。我如何告诉 Typescript 我想要那个界面,但我确信它__typename
只能有那个值。
解决方案
如果我对您的理解正确,您有一个查询,您知道该查询只会返回__typename: "Specific"
项目,并且您希望相应地键入它们,而不用该属性重复界面的所有其他方面。
为此,您可以像这样定义一个新接口:
type NarrowedInterface = OriginalInterface & {
__typename: "Specific";
};
推荐阅读
- docker - 当单个图像的行为不同(网络/工作者)时,在 docker 图像中启动进程的最佳实践是什么
- node.js - AppEngine nodejs 应用偶尔发送 502 并重启
- reactjs - 你如何从内部关闭块?
- c# - C# Invoke child form 随机挂起应用程序
- javascript - 如何有条件地计算对象中的元素数量?
- java - 如何更新部分 BufferedImage 并用 javafx 显示
- python - 使用 geopandas 在 Python 中设置 epsg 后的 FutureWarning
- mysql - MySQL/MariaDB 在存储时可以默默地改变值的方式
- c# - 如何将表中每个不同 TypeId 的一条记录放入列表、C#、FluidAPI/LINQ、EFCore
- python - How to setup matplotlib in order to show all figures in one single window?