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[];
}