tsconfig.json 옵션 중 "strict": true 시, try-catch 에 catch 블록에서 오류가 발생했다.
타입이 'Error'나 'any'일 것으로 생각했는데, 'unknown' 타입이여서, error.message 가 문제가 되었다.
해결 방법을 찾던 중 "--useUnknownInCatchVariables"에 대해 알게 되어 정리하게 되었다.
try {
// ...
} catch (error) {
// Object is of type 'unknown'.ts(2571)
if (error.status === 401) {
console.log('UnAuthorization');
}
}
try {
// ...
} catch (error: any) {
if (error.status === 401) {
console.log('UnAuthorization');
}
}
try {
// ...
} catch (error) {
const err = error as CustomError; // type assertion
if (err.status === 401) {
console.log('UnAuthorization');
}
}
try {
// ...
} catch (error) {
if (error instanceof CustomError) {
if (error.status === 401) {
console.log('UnAuthorization');
}
}
}
참고
https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/#use-unknown-catch-variables
https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables