롤 챔피언의 세부정보를 가져오는 server action 함수를 작성한 후 페이지에서 불러와 사용하는데 타입지정 중에 오류가 발생했다.
발생한오류
이전에는 불러올 데이터 중 필요없는 부분까지 타입을 연습 겸 전부 적어줬었는데 해당 타입을 지정해주었을 때 계속 오류가 떴다.
이전에 선언한 타입
타입선언을 조금 잘못적어준 것 같은데 fetch한 data와 계속 여러번 비교하면서 확인했는데도 어느 부분이 잘못되었는지 못찾았고 계속 헤맸다.
export type ChampionDetail = {
[key: string]: {
id: string;
key: string;
name: string;
title: string;
image: {
full: string;
sprite: string;
group: string;
x: number;
y: number;
w: number;
h: number;
};
skins: [];
lore: string;
blurb: string;
allytips: string[];
enemytips: string[];
tags: string[];
partype: string;
info: {
attack: number;
defense: number;
magic: number;
difficulty: number;
};
stats: object;
spells: [];
passive: {
name: string;
description: string;
image: [];
};
recommended: [];
};
};
해결방법
필요한 데이터 타입만 명시하고 필요없는 데이터는 [key: string]: any; 로 전부 들어오도록 수정해주었더니 더이상 타입오류가 발생하지 않았다.
export type ChampionDetail = {
[key: string]: {
id: string;
key: string;
name: string;
title: string;
image: {
full: string;
sprite: string;
group: string;
x: number;
y: number;
w: number;
h: number;
};
blurb: string;
[key: string]: any;
};
};
'TIL' 카테고리의 다른 글
Route Handler & Server Action 제대로 이해하기 (1) | 2024.10.05 |
---|---|
절대경로 import alias @/* (0) | 2024.10.04 |
`next/image` Un-configured Host (2) | 2024.10.01 |
타입선언 - 인덱스 시그니처 , undefined 에러처리 (0) | 2024.09.30 |
Router Handler & Server Action (0) | 2024.09.26 |