Weboldal keresés

javascript - hogyan adjuk meg egy válasznak a fetch response típusát typescript-ben?


Ez megvan a listám.json fájlomban

[{"id": "1", "qty": 1}]

Én fetch segítségével hívom

async function fetchPlaces() {
  let response = await fetch(`./data/list.json`);
  response = await response.json();
}

hogyan tudom a választ ugyanazzá a típussá tenni, mint az interfész?

IList {
   id: string,
   qty: number
}

Megpróbáltam response=await response.json() as IList[], de nem működik

Válasz #1

A probléma az, hogy újrahasználod a response változót, amelynek típusa Response-ként van kikövetkeztetve (ami valójában a fetch visszatérési értéke).

A következők működnek:

interface IList {
   id: string,
   qty: number
}

async function fetchPlaces() {
  let response = await fetch(`./data/list.json`);
  let decoded = await response.json() as IList[]; // type is IList[]
}

Kapcsolódó cikkek