我正在使用 nexus.js 来构建 GraphQL 架构。要定义一个类型,我们使用ObjectDefinitionBlock
. 我将对象类型定义如下:
export const Choice = objectType({
name: 'Choice',
definition(t) {
t.id('id', { resolve: (x) => x.id.toString() });
t.string('value');
t.int('order');
}
});
这t
是一个ObjectDefinitionBlock
允许定义对象字段的方法。x.id
是一种类型,bigint
并被序列化为内置的 GraphQL 标量类型 - ID
。因为,我使用bigint
我所有的数据库 ID,所以我必须始终添加一个解析器来转换bigint
为string
. 我想扩充它t
,以便我可以写:
t.bigId('id');
请注意,我不想定义新的 scalar。只需要在标量上编写一个外观,ID
以避免为resolve
函数编写重复定义。有什么办法可以做到这一点?