Frontend Archive

[TypeScript] Exhaustive Check로 "수정 깜빡함" 버그 막기

염승준
[TypeScript] Exhaustive Check로 "수정 깜빡함" 버그 막기

새 타입을 하나 추가했을 뿐인데, 컴파일러가 "여기도 고쳐야 하지 않냐"라고 먼저 알려줬다.

문제는 union에 멤버가 추가됐을 때, 타입스크립트가 처리 안 한 케이스에 대해 침묵한다는 것이다.

여기에 Triangle을 추가해도 getArea는 아무 에러도 내지 않는다. triangle이 들어오면 조용히 undefined를 반환하고, 런타임에서야 터지는 버그가 된다. 타입은 안전하게 정의했는데, 그걸 소비하는 코드가 변화를 못 따라간 것이다.