typescript 请求体中的转换属性

4sup72z8  于 2023-04-22  发布在  TypeScript
关注(0)|答案(1)|浏览(104)

我使用了class-transformer中的@Transform装饰器来清理用户输入中的特定字段。

import { IsString } from "class-validator";
import { Transform } from "class-transformer";

export class SearchRequestDto {
  @Transform((data) => data.value && sanitizeRegex(data.value))
  @IsString()
  readonly term: string = '';
}

我如何创建一个新的装饰器来更直接地将这个转换器添加到DTO中。像这样:

export class SearchRequestDto {
  @Regex()
  @IsString()
  readonly term: string = '';
}
ncgqoxb0

ncgqoxb01#

您可以创建一个自定义装饰器,如下所示:

export const Regex = () => Transform((data) => data.value && sanitizeRegex(data.value))

然后按照你想要的方式使用它:

export class SearchRequestDto {
  @Regex()
  @IsString()
  readonly term: string = '';
}

相关问题