Frontend/Nest.js

유저 프로필 수정 시 Mapped types 주의할 점

wam 2024. 6. 21. 00:20
// 잘못된 예
export class EditProfileInput extends PickType(User, ["email", "password"]) {}

// 올바른 예
export class EditProfileInput extends PartialType(
  PickType(User, ["email", "password"]),
) {}
  • 유저의 이메일과 패스워드를 사용할 것이기 때문에 PickType을 사용할 수 있지만
  • 프로필 수정하는 것이기 때문에 이메일과 패스워드는 수정될 수 있다!

  • 즉 이메일만 수정, 또는 패스워드만 수정하는 경우가 있다.

  • PickType이 아닌 PartialType에서 PickType을 사용하자

    • user에서 email, password를 가지고 class를 만들고

    • PartialType을 사용해서 optional 하게 만든 것이다.