【问题标题】:Difference between type-graphql field type "Int" and "Number"type-graphql 字段类型“Int”和“Number”之间的区别
【发布时间】:2019-06-22 04:40:55
【问题描述】:

type-graphql 类型 Int 和 Number 有什么区别? 我想使用纯整数作为我的 graphql 参数(例如 1 而不是“1”或 1.0)。

@GQL.Field(type => Number)

另外,我观察到当我将参数类型设置为“数字”时,出现在 graphql-playground 中的架构将这些参数类型显示为浮点数。

@GQL.Mutation(returns => Booking)
public async addBooking(
@GQL.Arg("user") user: number,
@GQL.Arg("bookingType") bookingType: number,
@GQL.Arg("start") start: Date,
@GQL.Arg("end") end: Date,
@GQL.Arg("bookingPackage", { nullable: true }) bookingPackage?: number,
@GQL.Arg("bookingAddons", type  => [ Number, ], { nullable: true, }) bookingAddons?: number[],
@GQL.Arg("payment", { nullable: true }) payment?: number
) {

let booking = new Booking()
booking.user = user
booking.bookingType = bookingType
booking.start = start
booking.end = end
if (bookingPackage) booking.bookingPackage = bookingPackage
if (bookingAddons) booking.bookingAddons = bookingAddons
if (payment) booking.payment = payment

await booking.save()
return booking
}

以及出现在graphql-playground中的Schema:

addBooking(
payment: Float
bookingAddons: [Float!]
bookingPackage: Float
end: DateTime!
start: DateTime!
bookingType: Float!
user: Float!
): Booking!

【问题讨论】:

    标签: typescript graphql


    【解决方案1】:

    https://19majkel94.github.io/type-graphql/docs/scalars.html#aliases

    JavaScript Number 会自动在 schema 中变成 GraphQLFloat

    那是因为 number 在 JS 中表示为双精度数,所以 Number = Float。 如果您需要 int,请使用 Int

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 2014-05-30
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2021-11-16
      • 2012-10-08
      相关资源
      最近更新 更多