我正在运行一个graphql突变const [updateUser] = useMutation(UPDATE_USER);
,我想添加突变响应(interface myResoponse)
。
但是,在这种情况下,我无法理解如何制定响应类型。这是突变:
updateUser(email: String!, input: UpdateUserInput!): User!
在模式中,响应类型是整个对象,如下所示:
type User {
email: String!
firstName: String
id: Int!
lastName: String
phoneNumber: String!
}
如果我通过GraphQL代码生成器进行检查,这就是我得到的:
export type User = {
__typename?: 'User',
email: Scalars['String'],
firstName?: Maybe<Scalars['String']>,
id: Scalars['Int'],
lastName?: Maybe<Scalars['String']>,
phoneNumber: Scalars['String'],
};
但是我无法在我的Typescript代码中使用“标量”。如何编写此突变的响应界面?我应该在响应类型中使用哪种模式?来自架构还是代码生成器?
答案 0 :(得分:0)
这可能有助于在编译gql时将其转换为打字稿,您可以在此处找到更多信息和说明:https://medium.com/the-guild/graphql-code-generator-a34e3785e6fb
现在,我们有了一个通用的JSON结构,如果要将模式转换为TypeScript类型定义,则需要使用以下模板进行编译:
{{#each models}}
export type {{name}} = {
{{#each fields}}
{{name ~}} {{#unless required ~}} ? {{~ /unless ~}} : {{ type }};
{{/each}}
}
{{/each}}
现在,当我们将两者一起使用时,我们将得到:
export type Person {
name: string;
age?: number;
}