graphql - 不能对 Type-GraphQL 字段类型使用类型“对象”
问题描述
我想为我的 NestJs API 创建一个 GraphQL 层。所以基于这个接口持有一个键/值对
export interface Mapping {
id: string;
value: object;
}
我创建了一个 DTO 作为 GraphQL 查询的返回类型
@ObjectType()
export class MappingDTO {
@Field(() => ID)
id: string;
@Field()
value: object;
}
所以当我想找到所有映射时,我会想出这个
@Query(() => [MappingDTO])
public async mappings(): Promise<Mapping[]> {
return this.mappingsService.getMappings();
}
不幸的是,我不能object
用于 value 字段。我收到此错误
NoExplicitTypeError:您需要为 MappingDTO#value 提供显式类型!
当更改类型时,例如string
启动时不会抛出错误。问题是我无法指定显式类型,因为我的 MongoDB 存储持有“任何东西”的对象。
如何修复我的解析器或 DTO 以处理对象类型?
编辑:
解析器装饰器也是如此。当我有这个
@Query(() => Object)
public async getValueByKey(@Args('id') id: string): Promise<object> {
return this.mappingsService.getValueByKey(id);
}
我收到这个错误
错误:无法确定 getValueByKey 的 GraphQL 输出类型
解决方案
推荐阅读
- javascript - 对 ng-options 对象的更改未更新为 html
- java - 如何将 SQL 数据映射到 Java JSON 对象和 JSON 数组?
- node.js - 无法在节点 js 中连接 MsSql 数据库
- javascript - 我在使用 setInterval 和类方法时遇到了很多麻烦
- javascript - 喜欢用单个复选框 php ajax 不喜欢
- javascript - 有没有办法将刷新持久性添加到进度条?
- node.js - 如何使用客户端 api 在节点 js 中执行 CRUD 操作
- terraform - 具有可重复变量的 Terraform 模块
- c# - ASP.NET Web-api core:处理客户端连接问题并发现冲突
- php - Laravel 5.7:我将一堆类注入到构造函数中,但 League\Csv\Reader 是唯一不起作用的