성장과정(dev)/Typescript ⊃Javascript

[javascript] new Error ('', {cause: {...}}) Expected 0-1 arguments, but got 2.

lowellSunny 2022. 11. 19. 01:32

mdn 공식 문서에서 지원하는 에러 생성 방식을 보면 두번째 인자로 에러 상세 원인을 출력할 수 있다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause

 

하지만 예제와 똑같이 적용해보면 arguments 가 0~1개라는 에러가 발생한다.

throw new Error('RSA key generation requires two co-prime integers.', {
      cause: { code: 'NonCoprime', values: 'test' },
    }

 

원인은 물론 버전 문제겠지?

 

사수의 도움을 받아... Error 객체의 change log 를 구글링 해보고

typescript + node 로 개발 중인지라 package "@types/node" 를 사용중인데 여기서 지정하는 타입의 버전문제인 걸 알게 되었다.

tc39에서 올린 error 객체에 대한 내용 을 보면 Error 객체의 arguments 가 변경되었다.

https://github.com/tc39/proposal-error-cause


* 해결 
tsconfig.json 의 target key를 es2021 -> es2022 로 변경