• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

TypeScript Utility 부분 질문드립니다

23.07.28 18:08 작성 조회수 235

0

Utility 부분 강의에서 type의 Partial, Required 등을 이용하여 모든 프라퍼티를 옵션으로 바꾸거나 필수로 바꾸는 방법을 가르쳐주셨는데, 특정 하나만 옵션으로 하거나, 특정 하나만 필수인자로 바꾸는 방법은 없을까요?

interface IProfile {

name: string;

age: number;

school: string;

hobby?: string;

friend:? string;

}

으로 정의했다고 하면 여기서 school만 옵션으로 바꾸고 싶다면, 방법이 없을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요! 정욱님!

해당 interface를 상속받고, school만 오버라이딩 하시면 될 것 같아요!^^

위 내용들은 수업때 간략히 언급했던 내용이므로, 아래를 참고하시면 바로 이해가 되실거예요!

interface AAAAAAA extends IProfile {
   school?: string
}

 

장정욱님의 프로필

장정욱

질문자

2023.07.31

답글 감사합니다.

말씀하신대로 오버라이딩은 되는데, AAAAAAA 부분에 빨간줄이 그어지면서,
Interface 'AAAAAAA' incorrectly extends interface 'IProfile'. Types of property 'school' are incompatible Type. 이라는 에러가 뜨네요 ㅠ

해결 방법이 없을까요..?

네! 정욱님!

확인 후 드린 답변이었는데, 타입스크립트 버전에따라 문제가 되는 것 같네요!

interface AAAAAAA extends Omit<IProfile, "school"> {
  school?: string
}

위와 같이 수업때 배운 유틸리티 타입을 응용하셔서 해결해 보세요!^^