리스코프 치환원칙은 반,공변성과 같은 원리인가요?
215
작성한 질문수 14
class Parents {
// 좁은 파라미터
method(name: string, test: string) {
// 넓은 반환 타입
return { key: "" };
}
}
class Child extends Parents {
// 넓은 파라미터
override method(name: string) {
// 좁은 반환 타입
return { key: "", name: "" };
}
}
안녕하세요,
리스코프 치환원칙을 보니 반,공변성의 원칙과 같이
매개변수는 반공변성을 리턴은 공변성을 가지는 것 같은데, T<child> -> T<parents> 개념이 되는 타입의 정의 원칙을 리스코프 치환 원칙이라 하는 것일까요?
답변 1
1
네 그렇게 이해해도 될 것 같습니다. 클래스 메서드에 한해서는요. LSP에는 메서드가 아닌 속성들 같은 것들도 관여합니다.
부모 자리에 자식 인스턴스를 넣어도 문제 없어야 하는데
const value = parent.method('name', 'test')
value.key;이런 코드에 parent를 child로 바꿔도 문제가 없으려면 매개변수 반공변성, 리턴 공변성을 유지해야 합니다.
const value child.method('name', 'test')
value.key // 문제없음
Singleton 관련 질문입니다.
1
15
2
3강 질문
0
9
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
19
1
코드 자료
0
15
2
2강 nodejs 3단계 설명 질문
0
28
1
imagesLoaded에 관한 질문
0
18
2
useEffect와 lifecycle문의
0
26
2
Next.js 사전렌더링 이해하기 부분
0
24
2
프론트엔드 학습 수준 문의
0
33
2
useMutation 적용 후 새로운 글 등록시 content가 안보여요
0
32
2
undo 구현
0
64
1
[프론트엔드 문서화 관련 질문]
0
71
1
커맨드 패턴 적용
0
111
1
type/interface 정의 파일분리
0
99
2
팩토리 패턴
0
124
2
강결합
1
134
2
React 환경에서 클래스형 디자인 패턴 활용에 관한 질문
0
200
2
질문 있습니다.
0
138
2
[공유] State 패턴 강의 최종본 커밋에서 누락된 부분이 존재
1
114
2
팩토리 메서드에 대해서 궁금증이 생겨서 질문드려봅니다!
0
212
2
.
0
105
1
[섹션1/사전에 알아두면 좋은 TS/JS 지식]영상 재생 관련 질문 드립니다.
0
170
2
[12강] 선언식 + bind vs arrow function 어떤거 선호하시나요?
0
198
2
싱글톤 강의
1
308
2





