민프
[React][TypeScript] Type 'any' is not assignable to type 'never'. 본문
[React Error]
[React][TypeScript] Type 'any' is not assignable to type 'never'.
민프야 2023. 4. 4. 09:48react TypeScript에서 setIsCoinList([...isCoinList, JSON.parse(message)]); 을 코딩했는데
Type 'any' is not assignable to type 'never'. 라는 에러가 났다 .
타입에러 인 것 같은데 어떻게 수정하면 좋을까?
JSON.parse(message)로 파싱한 데이터는 any 타입으로 추론되기 때문에 isCoinList 배열에 추가할 때 타입 에러가 발생하게 된다.
이를 해결하려면 isCoinList 배열의 타입을 명시해주어야 해야한다.
가장 간단한 방법은 useState를 사용할 때 isCoinList 배열의 초기값으로 빈 배열 []이 아닌 any[]을 명시해주는 것 이다.
하지만 이 방법은 isCoinList 배열의 요소가 any 타입으로 추론되기 때문에 타입 안정성을 보장할 수 없다.
따라서 isCoinList 배열의 타입을 정확히 지정해주는 것이 좋긴하다 예를 들어, Coin이라는 인터페이스를 만들고 이를 isCoinList 배열의 요소 타입으로 지정해줄 수 있다
interface Coin {
id: string;
name: string;
price: number;
volume: number;
}
const [isCoinList, setIsCoinList] = useState<Coin[]>([]);
이렇게 타입을 지정해주면 JSON.parse(message)로 파싱한 데이터가 Coin 타입으로 추론되어 isCoinList 배열에 추가할 수 있다
매번 인터페이스로 타입을 지정해줌으로 뭔가.. 귀찮지만 하다보면 확실히 react로 작업했을때랑 비교했을때 비교적 타입에러는 정말 적은 것 같다.
'[React Error]' 카테고리의 다른 글
Comments