logweft.

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타입 확인

코드는 이 브라우저에 자동 저장돼요.

풀이 결과

코드를 작성하고 채점하기를 눌러보세요.

    학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.

    어떤 기록을 찾으세요?

    키워드를 입력하면 기록을 찾아드려요.