강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của phm65305337
phm65305337

câu hỏi đã được viết

Mẫu thiết kế TS/JS với Canvas: Học đúng cách từ Zerocho

Bonus: Nguyên tắc SOLID

리스코프 치환원칙은 반,공변성과 같은 원리인가요?

Viết

·

203

·

Đã chỉnh sửa

0

class Parents {
  // 좁은 파라미터
  method(name: string, test: string) {
    // 넓은 반환 타입
    return { key: "" };
  }
}

class Child extends Parents {
  // 넓은 파라미터
  override method(name: string) {
    // 좁은 반환 타입
    return { key: "", name: "" };
  }
}

 

안녕하세요,

리스코프 치환원칙을 보니 반,공변성의 원칙과 같이

매개변수는 반공변성을 리턴은 공변성을 가지는 것 같은데, T<child> -> T<parents> 개념이 되는 타입의 정의 원칙을 리스코프 치환 원칙이라 하는 것일까요?

 

javascripttypescript객체지향디자인-패턴canvas

Câu trả lời 1

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

네 그렇게 이해해도 될 것 같습니다. 클래스 메서드에 한해서는요. LSP에는 메서드가 아닌 속성들 같은 것들도 관여합니다.

부모 자리에 자식 인스턴스를 넣어도 문제 없어야 하는데

const value = parent.method('name', 'test')
value.key;

이런 코드에 parent를 child로 바꿔도 문제가 없으려면 매개변수 반공변성, 리턴 공변성을 유지해야 합니다.

const value child.method('name', 'test')
value.key // 문제없음
squirrel PARK님의 프로필 이미지
squirrel PARK
Người đặt câu hỏi

감사합니다 이해가 되었어요!

Hình ảnh hồ sơ của phm65305337
phm65305337

câu hỏi đã được viết

Đặt câu hỏi