ys memos

Blog

nestjsのgraphqlでString cannot represent value: []


nestjs

2021/12/19


NestJS で GraphQL API を開発していて,エラーに遭遇した.


@InputType()を使った class 内部で,@Field(() => String)のところにdefaultValue: []をしたところ,以下のエラーが吐き出された.

以下がエラーを返すダメなコードの疑似コード.

code-with-error
@InputType()
export class CreateUserInput {
  @Field(() => String)
  id: string;

  @Field(() => String, { defaultValue: [] })
  xxs: string[];
}

こんなエラーが出る.

part-of-error
[
  GraphQLError [Object]: String cannot represent value: []
    ...
    path: [ '__schema', 'types', 4, 'inputFields', 1, 'defaultValue' ]
  }
]

@Fieldに指定した型とdefaultValueに指定した型が異なっているのが原因.

fix-error
@InputType()
export class CreateUserInput {
  @Field(() => String)
  id: string;

- @Field(() => String, { defaultValue: [] })
+ @Field(() => [String], { defaultValue: [] })
  xxs: string[];
}



関連タグを探す