Ka *_*Mok 7 typescript apollo graphql angular
编辑:我正在寻找来自 Graphql-Angular 社区的权威和来源答案,以提供最佳实践示例。
例如,我们在 TypeScript 中定义了一个 Person 类型:
interface Person {
firstName: string;
lastName: string;
birthDate: Date;
age: number;
...and many more attributes
}
Run Code Online (Sandbox Code Playgroud)
假设您有一个组件,并且根据 graphql 的口头禅,您只获取您需要的内容。没有过度获取和不足获取。
我只需要Person
和firstName
,age
所以我在 Apollo 查询中进行了它。
现在,我如何输入我刚刚获取的这个对象?
该结构是 的一部分Person
,所以我倾向于简单地这样做Partial<Person>
。这使得所有声明的属性都是Person
可选的。
但这不是这里发生的事情。Person
我们仅使用age
和来提取 的一部分firstName
。就是这样。
除了制作另一个界面之外,是否没有其他方法可以正确输入:
interace MyComponentPerson {
firstName: string;
age: number;
}
Run Code Online (Sandbox Code Playgroud)
有官方的风格指南/方法来做到这一点吗?我问过他们,但没有得到答复。也查看了文档,没有看到任何与此相关的内容。
您可以定义:
type MyComponentPerson = Pick<Person, "firstName" | "age">;
Run Code Online (Sandbox Code Playgroud)
如果您想根据查询自动生成此类型,TypeScript 中的 Type gql-tag之类的东西可能适合您。如果该解决方案不太正确,请提供您的查询示例,我也许可以提供帮助。
归档时间: |
|
查看次数: |
1562 次 |
最近记录: |