인프런 커뮤니티 질문&답변

김링크님의 프로필 이미지
김링크

작성한 질문수

타입스크립트 시작하기

제네릭

extends에 관하여

작성

·

236

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 보다 속성이 하나 더 많죠.
속성이 많다는 것은 값의 범위가 더 작다는 것을 의미합니다 (제약이 더 많기 때문에)
자세한 내용은 "타입 호환성" 강의를 참고하시면 될 것 같습니다

김링크님의 프로필 이미지
김링크
질문자

감사합니다.

무슨말인지 정확히 이해되었습니다!!

김링크님의 프로필 이미지
김링크

작성한 질문수

질문하기