타입스크립트에서 유형 테스트 | Axel Rauschmayer


이 글에서는 TypeScript에서 복잡한 타입이 의도대로 동작하는지를 테스트하는 기법을 다룹니다. JavaScript 단계의 테스트(assert 등)와 달리, 타입 레벨 테스트는 값이 아닌 타입 간의 동등성과 오류를 확인합니다. 예컨대, Equal과 Assert 같은 제네릭을 활용해 “두 타입이 동일한가?”를 검사하고, @ts-expect-error로 타입 오류 발생 여부를 제어합니다.
또한 타입 분배(조건부 타입이 유니온에서 자동으로 분배되는 현상)를 막기 위해 타입 파라미터를 튜플로 감싸거나, any 타입을 구별하기 위한 함수형 해킹 기법 등을 소개합니다. 실제 코드에선 assertType으로 값의 타입 추론을 확인할 수도 있으며, 이렇게 작성된 타입 테스트는 tsc나 tsx 같은 도구로 간단히 확인할 수 있습니다.

1개의 좋아요