ts강의 42. override 마지막즘 질문
42
7 asked
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다!
[코드팩토리 디스코드]
https://bit.ly/3HzRzUM
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
class PropertyParent2{
name: string | number;
constructor(name: string | number) {
this.name = name;
}
}
class PropertyChild2 extends PropertyParent2{
name?: string;
constructor(name: string) {
super(name);
this.name = name;
}
}
이 경우에 PropertyChild2의 name? property에 에러가 뜹니다
string | undefined is not assignable to string | number라고 뜹니다
제 ide 설정(webstorm)이나 tsconfig 설정 때문에 name? 이 자동으로 string | undefined로 타입 유추가 되는 건가요?
tsconfig에서
"exactOptionalPropertyTypes": true,
"strict": true,
로 되어있고 첫번째 옵션은 끄거나 켜도 달라지지 않고
strict는 키면 같은 에러가 나고 끄면 클래스 명에서 child의 property가 optional이라서 안된다고 뜨네요
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
potentialk 님께서 클래스 상속과 타입스크립트(TypeScript)의 strict 옵션과 관련된 질문을 주셨네요. 질문을 보니, 타입스크립트에서 옵셔널 체이닝과 관련된 문제가 발생한 것 같습니다. ‘strict’ 옵션을 활성화하면 타입 간 호환성을 보다 엄격하게 검사하게 되며, exactOptionalPropertyTypes 옵션은 정확한 옵셔널 프로퍼티 타입을 검사하게 설정합니다.
name?를 사용하면name의 타입은string | undefined로 추론됩니다. 따라서 부모 클래스의name타입인string | number와 충돌이 발생할 수 있습니다.
strict모드에서는 모든 타입 차이에 대해 정확히 검사하므로,string | number타입은string | undefined타입과 정확히 맞지 않다고 판단될 때 오류가 발생합니다.
- 옵셔널 체이닝을 제거하거나
PropertyChild2의name프로퍼티를string | number | undefined로 선언한다면 오류가 발생하지 않을 것입니다.
이와 관련된 유사한 질문을 참고하시면 더 도움이 될 것 같습니다. 아래의 링크를 확인해보세요:
- 타입스크립트 Class Override 관련 질문: 상속받은 클래스에서 부모 메소드를 오버라이드할 때의 타입 관련 문제에 대해 다루고 있습니다.
위의 링크를 통해 비슷한 문제의 해결방법을 참고하시고, 진행하던 과제에 적용해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
25. js array의 문제점 4:55쯤 질문입니다
0
31
1
union 기본기 7분 53초 질문 드립니다.
0
117
2
Equality Narrowing 관련 질문
0
117
2
tsconfig.json 설명
0
124
2
환불 관련 질문 드립니다.
0
179
1
재너릭이랑 any 차이가 뭔가요?
0
221
2
리플렉션과 데코레이터 사용시 의문점
0
135
2
변수의 선언이 중복되었다고 할 때
0
162
2
type 으로 함수의 형식을 정의하고 함수를 정의할 때
0
144
1
declare 키워드가 가끔 나오던데 이건 뭔가요?
0
150
2
class가 값이 될 수 있다는 말을 이해하기 어렵습니다.
0
127
1
null값의 타입은 object 아닌가요?
0
188
1
타입? 인터페이스? 질문있습니다
0
147
1
type functionOnly = Extract<string| (()=> void), Function> 의 의미
0
171
2
npm install cache error
0
205
1
12_experimental_decorator, class decorator
0
131
1
9_class/7_override.ts, super 키워드 질문
0
211
2
강의 계획이 궁금합니다!
0
289
1
instantiator 질문
0
151
1
따라하는데 에러 생기네요
1
390
2
webstorm에서 ts-node 설치해도 문제가 발생하고 있습니다.
0
485
3
infer를 사용한 type의 쓰임새
0
131
1
혹시 수업하면서 작성된 코드는 따로 받아 볼 수 없나요?
0
203
1
object intersection에서 유니언으로 타입 질문
1
129
1

