학습하는 청년 2024. 5. 30. 20:20

모임 일시 : 2024-05-30

참여 인원 : 6명(오*택, 이*헌, 주*산, 장*희, 이*양, 이*훈) / 예비군(고재성)

 

1. 서브타입과 슈퍼타입의 관계는 무엇인가요?


2. 추상 메서드는 무엇이고, 필요한 이유는 무엇인가요?


3. 최대타입의 정의와 최대타입이 any가 아니라 unknown인 이유와 그 유용성은 무엇인가요?


4. 최소타입의 정의와 never의 불편한 점은 무엇인가요?


5. '이거나 타입'을 사용할 때 주의할 점과 '위치에 민감한 타입검사'의 종류는 무엇인가요?


6. 함수타입에서 결과 타입은 서브타입 관계를 유지하는데, 매개변수의 타입은 서브타입 관계를 뒤집는 것에 대해 설명해주세요.

마음에 들지 않지만, 우선 답할 수 있는 것은 설계가 그렇게 되어 있다는 답변을 들었다.

원리의 이유에 대해서는 우선적으로 답하면 다음과 같다.

 

1) 함수의 특징상 매개변수와 반환 값의 타입은 다를 수 있다. 함수를 작성할 때, 매개변수에는 일반적인 타입을 넣어 잘 동작하도록 만드는 게 중요하다. 그래서 반공변성을 따르도록 설계되어 있다. 리턴 값은 값이 좀 더 디테일하게 나오도록 하기 위해 공변성을 따른다.


cf)함수타입의 호환

—> 매개변수의 갯수와 관련이 있는건가??

—> 함수의 서브타이핑이 공변성과 반공변성이 모두 결합하게 만들어진 이유는 무엇일까??

 

https://inpa.tistory.com/entry/TS-%F0%9F%93%98-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B3%B5%EB%B3%80%EC%84%B1-%EB%B0%98%EA%B3%B5%EB%B3%80%EC%84%B1-%F0%9F%92%A1-%ED%95%B5%EC%8B%AC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

📘 타입스크립트 공변성 & 반공변성 완벽 이해

타입의 공변성과 반공변성 타입스크립트는 자바스크립트에 타입을 추가해준 라이브러리 이지만, 타입을 다루는 언어이기도 하다. 그래서 어느새 타입 자체를 코딩하고 있는 자신을 발견하기도

inpa.tistory.com

 

추가 공부 필요

: 공변성, 반공변성 (+ 이변성)  
이들에 대해, 벤다이어그램으로 표현해서 해보자.



추가 질문
+) 타입검사기가 사용하는 규칙은 무엇이고, TS는 어디에 해당하나요?
+) 일급함수란 무엇인가요?