前提
NestJSの勉強をしています。
公式ドキュメントを読みながら触っているのですが、Validationで引っかかっています。
実現したいこと
validation後に型がクラスに合わせてtransformされている。
該当のソースコード
javascript
1// main.ts 2import { ValidationPipe } from '@nestjs/common' 3import { NestFactory } from '@nestjs/core' 4import { AppModule } from './app.module' 5 6async function bootstrap() { 7 const app = await NestFactory.create(AppModule) 8 app.useGlobalPipes(new ValidationPipe( 9 { transform: true } // transformをオン 10 )) 11 await app.listen(3000) 12} 13bootstrap()
javascript
1// users.controller.ts 2import { Controller, Get, Param, Query } from '@nestjs/common' 3 4import { IsNumberString, IsOptional } from 'class-validator' 5 6class GetParams { 7 @IsNumberString() 8 @IsOptional() 9 limit?: number 10} 11 12@Controller('users') 13export class UsersController { 14 @Get() 15 findAll(@Query() query: GetParams): string { 16 console.log(typeof query.limit) // stringのまま 17 return 'This action returns all users' 18 } 19 20 @Get(':id') 21 findOne(@Param('id') id: number): string { 22 console.log(typeof id) // numberにtransformされている 23 return `This action returns user(id: ${id})` 24 } 25} 26
findAllが実行された際に、
query.limitはnumberになっていると想定していたがstringのまま。
これは記述方法が間違っているのでしょうか?
もしくは@Queryに対してはtransformは効かないのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。