You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NestJS的DTO中设置默认值?

给DTO字段设置默认值的实现方案

在你的QueryCollateralTypeDto中,可以通过直接为类属性赋值默认值,配合@Transform处理参数未传递时的情况,来实现page、limit和select的默认值设置,修改后的代码如下:

import { IsString, IsNumber, IsOptional, Min, Max } from 'class-validator';
import { Transform } from 'class-transformer';

export class QueryCollateralTypeDto {
  @Transform(({ value }) => value ? parseInt(value) : 1)
  @IsNumber()
  @IsOptional()
  page: number = 1;

  @Transform(({ value }) => value ? parseInt(value) : 10)
  @IsNumber()
  @IsOptional()
  limit: number = 10;

  @IsString()
  @IsOptional()
  select: string = "field1,field2,...";
}

关键说明:

  • page/limit字段:
    1. 直接在属性后赋值= 1和= 10作为默认值;
    2. @Transform中增加判断:如果请求未传递该参数(value为undefined),直接返回默认值,避免parseInt(undefined)得到NaN导致验证失败。
  • select字段:
    直接为属性赋值默认字符串即可,当请求未传递该参数时,class-transformer会自动使用这个默认值,同时@IsOptional标记允许参数缺失。

内容的提问来源于stack exchange,提问作者ermir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:48:22