반응형
axios 오류 유형 스크립트, 주석은 '임의' 또는 '알 수 없음'이어야 합니다.
의 오류가 발생했습니다.Catch clause variable type annotation must be 'any' or 'unknown' if specified.ts(1196)
아래의 규정으로 하여
import axios, { AxiosError } from "axios";
try {
} catch(error: AxiosError) {
throw Error(error);
}
TS에서 axios 오류를 던지는 방법은 무엇입니까?
AxiosError를 사용하여 오류 캐스트
import { AxiosError } from 'axios';
catch (error) {
const err = error as AxiosError
console.log(err.response?.data)
}
다음과 같은 오류 유형을 제거하는 것이 좋습니다.
import axios from 'axios';
try {
// do what you want with axios
// axios.get('https://example.com/some-api');
} catch (error) {
// check if the error was thrown from axios
if (axios.isAxiosError(error)) {
// do something
// or just re-throw the error
throw error;
} else {
// do something else
// or creating a new error
throw new Error('different error than axios');
}
}
저는 그것을 위해 스택 블리츠를 만들었습니다.더 자세히 알아보고 싶다면 이 기사를 보십시오.
형식 스크립트에서 catch 절 변수에 대한 특정 주석을 작성할 수 없습니다. 이는 javascript에서 catch 절이 지정된 형식의 예외뿐만 아니라 던져지는 모든 예외를 포착하기 때문입니다.
유형 스크립트에서 특정 유형의 예외만 잡으려면 던져진 것은 무엇이든 잡고, 처리할 유형의 예외인지 확인하고, 없으면 다시 던져야 합니다.
즉, 어떤 작업을 수행하기 전에 먼저 발생하는 오류가 axios 오류인지 확인합니다.
try {
// do something
}catch (err) {
// check if error is an axios error
if (axios.isAxiosError(err)) {
// console.log(err.response?.data)
if (!err?.response) {
console.log("No Server Response");
} else if (err.response?.status === 400) {
console.log("Missing Username or Password");
} else if (err.response?.status === 401) {
console.log("Unauthorized");
} else {
console.log("Login Failed");
}
}
}
오류는 더 안전하게 잡을 수 있는 모든 유형의 방법일 수 있습니다.
try {
// TODO :: API call
} catch (err) {
if (error instanceof AxiosError) {
// TODO :: handle it here
} else {
throw err
}
}
catch (error) {
const err:any=error;
alert(err.response.data)
}
저한테는 효과가 있어요 :)
언급URL : https://stackoverflow.com/questions/69264472/axios-error-typescript-annotation-must-be-any-or-unknown-if
반응형
'programing' 카테고리의 다른 글
Excel vba의 웹에 JSON 게시 (0) | 2023.06.13 |
---|---|
Extender 공급자가 Extender를 반환하지 못했습니다. (0) | 2023.06.13 |
VB.NET에서 예외를 발생시키는 방법 (0) | 2023.06.13 |
자동 완성(Angular4+)에서 다중 선택을 하는 방법이 있습니까? (0) | 2023.06.13 |
SUMIF 기능에 대한 명명된 범위의 특정 열 선택 (0) | 2023.06.08 |