【发布时间】:2020-01-19 23:03:26
【问题描述】:
因此,我正在尝试确保客户端 GraphQL 查询的安全性(因此,如果有更好的方法,请告诉我)。
但我一直在做的是这样定义我的查询。
export const tenantManagePageQuery = async (tenantId: string) =>
graphQLClient.request<{
tenants: TenantManagePageQueryTenant[];
}>(
/* GraphQL */ `
query tenants($tenantId: String!) {
tenants(tenantIds: [$tenantId]) {
id
description
name
approvedUsers {
id
alias
}
pendingUsers {
id
alias
}
}
}
`,
{ tenantId },
);
为了定义TenantManagePageQueryTenant 类型,我做了这样的事情
interface TenantManagePageQueryTenant
extends Pick<Tenant, 'id' | 'description' | 'name'> {}
基本租户模型是我的 GQL 模型类型。
无论如何要执行这种 Pick 语句,但还要选择嵌套属性。
类似
interface TenantManagePageQueryTenant
extends Pick<Tenant, 'id' | 'description' | 'name' | Pick<approvedUser| 'id' | 'alias'> {}
【问题讨论】:
-
用例是什么?您想要所有可能键的类型联合(即使嵌套在另一个键下?)
-
我想选择一个根类型的字段,但要确保该字段中的键都是其他类型的有效键
标签: typescript graphql