@ts-expect-error 와 @ts-ignore 은 언제 사용해야할까?

yoon-bomi·2022년 7월 4일
0

타입스크립트를 쓰다보면 종종 타입스크립트가 타입 추론을 제대로 못하거나, (절대 내가 코딩을 이상하게 해서가 아니라 그냥 타입스크립트가 바보인 경우가 종종 있..) 다른 이유로 인해 타입 에러를 무시해야할 경우가 있다.

필자는 타입스크립트 에러를 무시하기 위해 @ts-ignore 를 더 자주 사용했지만, @ts-expect-error 도 있다는 것을 알게 되어 정리를 해보려 한다.



@ts-expect-error 와 @ts-ignore 의 공통점

둘 다 타입스크립트 에러를 무시하기 위해 사용한다.



@ts-expect-error 와 @ts-ignore 의 차이점

@ts-expect-error : typescript 3.9 버전에서 추가되었다.

  1. 타입스크립트 에러가 발생할 것은 알지만 어쩔 수 없이 에러를 무시해야 할 때 사용 한다.
 delete() {
        // @ts-expect-error NOTE: 타입이 복잡해지지 않도록 ts-expect-error 를 사용한다.
        this.groupIdx = null;
        this.publishEvent(new UserDeletedEvent(this.id, this.groupIdxs));
    }

이 예시에서 groupIdx 의 타입은 number 로 되어있고, 실제 DB 에는 number | null 로 값이 들어갈 수 있다.
하지만 groupIdx 를 number | null 타입으로 지정할 경우, 타입 추론이 너무 복잡해지기 때문에 @ts-expect-error 를 이용해 타입을 단순화했다.

  1. 런타임 에러가 발생하면 안된다. 진짜 타입 에러인 경우에만 사용한다.

@ts-ignore

  • '아몰랑 일단 넘어가자..' 할 때 사용한다.
profile
웹 풀스택에서 백엔드로 진화중 🧚🏻‍♀️

0개의 댓글