【发布时间】:2019-01-30 03:54:01
【问题描述】:
编辑:我正在寻找来自 Graphql-Angular 社区的权威和来源答案,以提供最佳实践示例。
例如,我们在 TypeScript 中定义了一个 Person 类型:
interface Person {
firstName: string;
lastName: string;
birthDate: Date;
age: number;
...and many more attributes
}
假设你有一个组件,根据 graphql 的口头禅,你只获取你需要的东西。没有过度获取和获取不足。
我只需要Person 的firstName 和age,所以我在我的Apollo Query 中做了这个。
现在,我如何输入我刚刚获取的这个对象?
结构是Person 的一部分,所以我倾向于简单地做Partial<Person>。这使得在Person 上声明的所有属性都是可选的。
但这不是这里发生的事情。我们只使用age 和firstName 提取Person 的一部分。就是这样。
除了制作另一个界面之外,没有其他方法可以正确键入:
interace MyComponentPerson {
firstName: string;
age: number;
}
是否有官方的风格指南/方法可以做到这一点?我问过他们的懈怠,但没有得到答案。看了文档也没有看到任何关于这个的东西。
【问题讨论】:
-
至于我——我什至没有完整的人(例如)类型——我只有我需要的东西,如果我需要不同形式的它,我为每种形式都有一个类型(可能继承)
-
是的,我的意思是有很多方法可以做到这一点,我想听听权威人士关于最佳做法的意见。
标签: angular typescript graphql apollo