我想在我的GraphGL模式中将Decimal
用作纬度和经度字段的类型。但是GraphQL仅提供Float
和Int
。
是否有解决方案?
答案 0 :(得分:0)
我查看了 this module 的源代码可以想出这个:
/// I M P O R T
import Big from "big.js";
import { GraphQLScalarType, Kind } from "graphql";
/// E X P O R T
export default new GraphQLScalarType({
name: "Decimal",
description: "The `Decimal` scalar type to represent currency values",
serialize(value) {
return new Big(value);
},
parseLiteral(ast) {
if (ast.kind !== Kind.STRING) {
// @ts-ignore | TS2339
throw new TypeError(`${String(ast.value)} is not a valid decimal value.`);
}
return Big(ast.value);
},
parseValue(value) {
return Big(value);
}
});
然后,我将引用添加到我的解析器,这样我就可以将 Decimal
添加到我的 SDL 代码中。