我从AWS Amplify GraphQL(我相信它使用apollo codegen)自动生成了一个类型脚本,如下所示:
export type GetNoteQuery = {
getNote: {
__typename: "Note",
id: string,
createdAt: string | null,
updatedAt: string | null,
title: boolean | null,
content: string | null,
} | null,
我想生成一个基本类型的“注释”,作为“基本”类型,在使用返回的数据时在我的代码中使用。即将注释映射到React组件上,等等。
有没有办法缩小自动生成的类型,或者以某种方式对其进行扩展,使其看起来像:
type Note = {
id: string,
createdAt: string | null,
updatedAt: string | null,
title: boolean | null,
content: string | null
}
这里是GraphQL代码生成器。
关于生成这种TS代码的决定,我们有一些背景知识:我们开始使用typescript
作为一个插件来创建GraphQL模式的精确表示。然后,typescript操作
获取操作和片段(从模式中提取特定字段和数据),并生成代码,该代码通过typescript
插件从生成的类型中获取相同的字段和数据字段。
我们看到一些开发人员更喜欢更干净的代码,因此您可以使用preResolveTypes:true
来避免使用Pick
,而只使用原语类型。您还可以使用onlyOperationTypes:true
,告知codegen避免生成不需要的类型。
您可以使用索引查询来获取与排除
耦合的getNote
类型,以从属性类型中删除null
。然后,您可以使用Omit
来删除额外的属性。
export type GetNoteQuery = {
getNote: {
__typename: "Note",
id: string,
createdAt: string | null,
updatedAt: string | null,
title: boolean | null,
content: string | null,
} | null
}
type Note = Omit<Exclude<GetNoteQuery['getNote'], null>, '__typename'>
您还可以使用接口为类型获取更强大的名称:
interface Note extends Omit<Exclude<GetNoteQuery['getNote'], null>, '__typename'> { }
我刚刚开始进入GraphQL。我使用GraphQL. js和Express。现在我正试图构建一个简单的例子,使用硬编码的JSON作为我的javascript文件中的数据。然后我想使用快速中间件通过curl或失眠来监听HTTP请求。在中间件中,我想使用身体解析器提取查询。现在我有麻烦与解析器。 请看一下我的代码。 这是行不通的。当我使用curl和 curl-XPOST-H“内容类型:应用程序/gra
问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:
使用apollo和neo4j graphql js使用graphql尝试neo4j。这是我的typeDefs: 我总是把记者当成空的。对我错过了什么有什么建议吗?
我已经将我的spring boot应用程序与graphql-spqr-spring-boot-starter https://github.com/leangen/graphql-spqr-spring-boot-starter集成在一起,我需要找到一种方法来禁用graph QL模式自省,因为这是生产中的一个安全问题。
如何在Atom编辑器中自动缩进代码?在其他编辑器中,通常可以选择一些代码并自动缩进。 还有键盘快捷键吗?
问题内容: 如何用Java创建条形码图像?我需要一些可以输入数字并产生相应条形码图像的东西。是否有免费的图书馆可用于此类任务? 问题答案: iText是一个很棒的Java PDF库。它们还具有用于创建条形码的API。您无需创建PDF即可使用它。 此页面包含有关创建条形码的详细信息。这是该站点的示例: 您需要确定的最大内容是所需的条形码类型。有许多不同的条形码格式,并且iText确实支持许多。您需要