TS-L4-052 / 고급 분산
반공변 콜백 레지스트리
고급문제
Handler<T>를 (value:T)=>void로 정의하세요. strictFunctionTypes에서 넓은 인수를 받는 함수를 좁은 인수 핸들러로 대입할 수 있어야 합니다.
요구한 타입·변수 이름을 유지하세요. 각 타입 계약이 컴파일되는지를 확인합니다. 코드를 실행하는 문제는 아닙니다.
타입 계약
인수 반공변
const broad: Handler<string|number> = value => {}; const narrow: Handler<string> = broad;호출 인수
type Check = Expect<Equal<Parameters<Handler<number>>, [value:number]>>;
힌트
함수 타입 별칭을 사용하고 메서드 시그니처와 구별하세요.
해설·정답 보기
넓은 입력을 처리하는 함수는 좁은 입력 요청도 처리할 수 있습니다. strictFunctionTypes의 반공변 관계입니다.
type Handler<T> = (value:T)=>void;
answer.ts타입 확인
코드는 이 브라우저에 자동 저장돼요.
풀이 결과
코드를 작성하고 채점하기를 눌러보세요.
학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.