TypeScript가 주문 ID 자리에 사용자 ID를 넣게 냅둔 이유
TypeScript에서 타입 별칭은 구분되는 타입을 만들지 않는다. 브랜디드 타입은 그렇게 하며, 컴파일 시점에 식별자를 섞는 실수를 막아준다.
지난 분기, 잘못된 고객에게 환불을 해 주는 버그를 배포했다. 함수는 주문 ID가 와야 할 자리에 사용자 ID를 받았다. 두 문자열은 똑같아 보였고, 테스트는 통과했으며, TypeScript는 아무런 이의도 제기하지 않았다. 두 식별자 모두 으로 타입이 지정되어 있었다.…