如何在 graphql 中为 args 参数添加装饰器

How to add decorator to args param in graphql

无法将装饰器 @IsUUID()class-validator 添加到我的参数 productI,我不想使用额外的 dto。如何解决?

@UseGuards(new AuthGuard(['user', 'admin']))
@Mutation(() => ProductEntity)
async updateProduct(
  @User() user,
  @Args('productId', {})
  //@IsUUID() Unable to resolve signature of parameter decorator when called as an expression.
  productId: string,
  @Args('inputs', {})
  inputs: UpdateProductInputDto,
): Promise<ProductEntity> {
  return this.productService.updateProduct(user.id, productId, inputs);
}

没有办法解决。如果您想使用 @IsUUID()ValidationPipe,您 必须 使用 class DTO。如果您只是想验证 UUID,则可以使用 ParseUUIDPipe@Args('productId', {}, new ParseUUIDPipe({ version: 4 }))