reactjs - Axios anpassad deserialisering
Är det möjligt att göra (helst delvis) anpassad deserialisering av ett Axios-anropssvar (i React med Typescript)? Jag har en klass som utökar JS Array (av T), men när jag använder Axios inbyggda deserialisering får jag en standardarray, vilket jag inte vill ha.
Exempel :
interface MyData {
arrayInData: MyArray<string>
// Rest of interface omitted
}
och
class MyArray Extends Array<T> { ... } //Implementation omitted
och
async function LoadData(): Promise<MyData>
{
const response = await axios.get(/* url */);
return response.data;
}
Detta returnerar ett objekt av typen MyData, men MyData.arrayInData är av typen Array, inte MyArray.
Finns det ett sätt att göra något av dem
(Helst) En delvis anpassad deserialisering? Något liknande
async function LoadData(): Promise<MyData> { const response = await axios.get(/* url */); return response.useAxiosMapButChangeArrayToMyArray(data => /* code to only take arrayInData and make it a MyArray and leave the rest as Axios's standard automatic deserialization */ ); }En "fullständig" anpassad karta där jag kan göra något som
async function LoadData(): Promise<MyData> { const response = await axios.get(/* url */); return response.MapEverything(data => new { arrayInData = new MyArray<string>(data.arrayInData) // rest of class }); }