해결된 질문
작성
·
268
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
}
네! 정욱님!
확인 후 드린 답변이었는데, 타입스크립트 버전에따라 문제가 되는 것 같네요!
interface AAAAAAA extends Omit<IProfile, "school"> {
school?: string
}
위와 같이 수업때 배운 유틸리티 타입을 응용하셔서 해결해 보세요!^^
답글 감사합니다.
말씀하신대로 오버라이딩은 되는데, AAAAAAA 부분에 빨간줄이 그어지면서,
Interface 'AAAAAAA' incorrectly extends interface 'IProfile'. Types of property 'school' are incompatible Type. 이라는 에러가 뜨네요 ㅠ
해결 방법이 없을까요..?