const response = await fetch(`https://api.coinpaprika.com/v1/coins/${coinId}`)
const json = await response.json()
요 두줄을
const response = await (await fetch(`https://api.coinpaprika.com/v1/coins/${coinId}`)).json();
한 줄로...
typescript에서는 interface라 할 지라도 []이 있으면 그 안에 무엇으로 이루어져있는지 또 다른 interface를 만들어 설명해줘야 한다는 것.
쥬랄맞은 예
interface PriceData {
id: string;
name: string;
symbol: string;
rank: number;
circulating_supply: number;
total_supply: number;
max_supply: number;
beta_value: number;
first_data_at: string;
last_updated: string;
quotes: {
USD: {
ath_date: string;
ath_price: number;
market_cap: number;
market_cap_change_24h: number;
percent_change_1h: number;
percent_change_1y: number;
percent_change_6h: number;
percent_change_7d: number;
percent_change_12h: number;
percent_change_15m: number;
percent_change_24h: number;
percent_change_30d: number;
percent_change_30m: number;
percent_from_price_ath: number;
price: number;
volume_24h: number;
volume_24h_change_24h: number;
}
};
}
정의해주고
const [priceInfo, setPriceInfo] = useState();
넣어주면 된다..
prcieInfo는 항상 정의되어있는것이 아니므로(fetch) 사용시에는 priceInfo?.quotes.USD~ '?'물음표 아이를 점 뒤에![]
넣어주면 된다....