Web Dev/Javascript
@nestjs/mapped-types 사용 방법
이준호
2024. 4. 25. 09:27
반응형
npm install @nestjs/mapped-types
CreateUserDto
export class CreateUserDto {
name: string;
email: string;
password: string;
}
PartialType() 함수를 사용하여 새로운 타입을 생성
import { PartialType } from '@nestjs/mapped-types';
export class UpdateUserDto extends PartialType(CreateUserDto) {}
위 코드에서 UpdateUserDto는 CreateUserDto를 기반으로 생성되며, 모든 속성이 선택적으로 변경됩니다. 즉, UpdateUserDto는 다음과 같이 정의된 것과 동일합니다.
export class UpdateUserDto {
name?: string;
email?: string;
password?: string;
}
생성된 UpdateUserDto를 컨트롤러나 서비스에서 사용합니다.
@Patch(':id')
updateUser(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
return this.usersService.update(id, updateUserDto);
}
위 코드에서 updateUserDto는 UpdateUserDto 타입으로 정의되어 있으므로, 클라이언트에서 보낸 요청 데이터 중 일부 속성만 포함될 수 있습니다.
이렇게 PartialType을 사용하면 기존 타입을 재사용하면서도 업데이트 작업에 필요한 선택적 속성을 쉽게 정의할 수 있습니다.
반응형