작성
·
232
0
extends에 대해 설명을 해주실때,
5분 53초에서
A extends B => A 가 B 에 할당 가능해야 한다
라고 설명해주셨습니다.
뒤에 강의를 계속 듣다보니 extends가 상속의 개념이 강한것 같은것으로 이해됩니다.
A에 할당 가능한 타입이 더 많은데
A가 B에 할당 가능해야 한다는 개념이 이해가 안됩니다.
B의 타입을 A가 상속 받아
B의 타입을 A에서도 가지고 있으며,
A의 타입 일부가 B의 타입과 동일하다고 생각해야하는게 아닌가요?
'A 가 B 에 할당 가능해야 한다' 는 말이 잘 이해가 되지 않습니다.
답변 1
1
안녕하세요
제네릭에서 사용한 extends 와 interface 에서 사용한 extends 는 서로 다릅니다
하지만 강의에서도 언급했듯이 왼쪽에 있는 것이 오른쪽에 있는 것으로 할당 가능하다는 사실은 같습니다
"A에 할당 가능한 타입이 더 많은데, A가 B에 할당 가능해야 한다는 개념이 이해가 안됩니다."
라고 하셨는데요
A에 할당 가능한 타입이 더 많지는 않습니다
강의에 있는 아래 코드를 보면,
interface Korean extends Person {
liveInSeoul: boolean;
}
Korean 은 Person 보다 속성이 하나 더 많죠.
속성이 많다는 것은 값의 범위가 더 작다는 것을 의미합니다 (제약이 더 많기 때문에)
자세한 내용은 "타입 호환성" 강의를 참고하시면 될 것 같습니다
감사합니다.
무슨말인지 정확히 이해되었습니다!!