编辑:我正在寻找来自 Graphql-Angular 社区的权威和来源答案,以提供最佳实践示例。
例如,我们在 TypeScript 中定义了一个 Person 类型:
interface Person {
firstName: string;
lastName: string;
birthDate: Date;
age: number;
...and many more attributes
}
假设您有一个组件,并且根据 graphql 的口头禅,您只获取您需要的内容。没有过度获取和不足获取。
我只需要Person
's firstName
and age
,所以我在 Apollo 查询中做了这个。
现在,我如何输入刚刚获取的这个对象?
该结构是一部分Person
,所以我倾向于简单地做Partial<Person>
。这使得所有声明的属性Person
选修的。
但这不是这里发生的事情。我们正在拉取一部分Person
仅与age
and firstName
。就是这样。
除了制作另一个界面之外,是否没有其他方法可以正确输入:
interace MyComponentPerson {
firstName: string;
age: number;
}
有官方的风格指南/方法来做到这一点吗?我问过他们,但没有得到答复。也查看了文档,没有看到任何与此相关的内容。
您可以定义:
type MyComponentPerson = Pick<Person, "firstName" | "age">;
如果您想根据查询自动生成此类型,例如在 TypeScript 中输入 gql-tag https://stackoverflow.com/questions/51968157/type-gql-tag-in-typescript/51968630可能适合你。如果该解决方案不太正确,请提供您的查询示例,我也许可以提供帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)