stc와 관련된 사소한 후회

Vercel은 연말이 전원 휴가라 놀다가 stc 작업을 했는데, 내가 이전 작업을 너무 성의 없이 해서 곤란한 상황이 됐다. 처음부터 tsc의 추론 결과를 테스트해보면서 작업했으면 아무것도 아닌데, 지금 시점에선 어디부터 손을 대야할지 감도 안 오는?

enum E {
  A,
  B,
}

declare let b: { [s: string]: string | E };

b = E;

문제가 되는 케이스다. Enum의 정의를 표현식에서 사용하면 string | Enum (의 인스턴스)가 되는데, 이걸 여태 몰랐다. 한번도 테스트를 안 해봤기 때문이다.

항상

대충 이렇게 작동하지 않을까?

에 가까운 태도로 작업해왔는데, 덕분에 오늘은 이 변경을 위해 얼마나 바꿔야하는지 계산하면서 보낼 것 같다.