해결된 질문
작성
·
462
0
포트폴리오 과정의 'N:M 등록 및 조회/회원가입'을 처리하는 중 질문할 것이 나와 질문을 드립니다.
User의 생성부분을 구현하기 위해 CreateUserInput 타입을 만들었고 해당 부분에서 유저 아이디, 패스워드, 이메일 등을 기입하도록 하였습니다.
@InputType()
export class CreateUserInput {
@Field(() => String)
loginId: string;
@Field(() => String)
@MinLength(8)
password: string;
@Field(() => String)
name: string;
@Field(() => String)
address: string;
@Field(() => String)
@IsPhoneNumber('KR')
phone: string;
@Field(() => String)
@IsEmail()
@Transform(({ value }) => value.toLowerCase())
email: string;
}
그리고 User의 수정 부분을 구현하기 위해 UpdateUserInput 타입을 만들었습니다. 단순히 OmitType으로 CreateUserInput 부분을 넘겨 만들었습니다만, API 동작에서 패스워드 부분을 넘기지 않으면 필수 항목을 입력하지 않았다고 수정이 되지 않았습니다.
@InputType()
export class UpdateUserInput extends OmitType(CreateUserInput,
['loginId', 'email'], InputType) {
}
그래서 그냥 PartialType까지 상속하고 싶었습니다만 타입스크립트도 다중 상속을 지원하지 않는지 OmitType과 PartialType을 함께 쓸 수 없었습니다. 이러면 그냥 CreateUserInput처럼 전부 구현할 수 밖에 없나요? API 부분에서 넘기지 않은 부분은 그냥 그대로 냅두는 것을 목적으로 합니다.
답변 1
1
chatGPT에 물어보니 바로 알려주네요. 자답합니다.
@InputType()
export class UpdateUserInput extends PartialType(
OmitType(CreateUserInput, ['loginId', 'email'], InputType)) {
}