더북(TheBook)

따라서 Equal2 타입은 두 타입이 동일한 타입인지 판단할 때 사용할 수 있습니다.

Equal2 타입을 사용하면 any는 다른 타입과 잘 구별하나 인터섹션을 인식하지 못합니다.

Equal2<any, unknown>의 경우는 extendsfalse로 만드는 T가 없음에도 false가 됩니다.

위 두 경우는 타입스크립트의 논리적 한계를 보여주는 사례입니다.

type R5 = Equal2<any, 1>;
// type R5 = false
type R6 = Equal2<{ x: 1 } & { y: 2 }, { x: 1, y: 2 }>;
// type R6 = false
type R7 = Equal2<any, unknown>;
// type R7 = false

이처럼 Equal의 두 방식에는 각자 장단점이 있으니 필요에 따라 선택하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.