typescript - Hur skapar man en array med en specifik typ på ett angivet index?


type MyArray<T> = [data: T[] , count: number ]; // doesn't work

På klientsidan vill jag använda MyArray-typen för att mappa data från en API och kunna anropa dess 'data' eller 'count'-egenskap. API:et levererar data i en array, på index 0 har arrayen data och på index 1 har den ett nummer.

Svar #1

Du letar efter en tuppeltyp:

type MyArray<T> = [T[], number];

Tuplemedlemmar kan inte ha namn, de är endast positionella och representeras vid körning med hjälp av arrayer

Exempel på användning:

type MyArray<T> = [T[], number];
let data : MyArray<string> = [["data1", "data2"], 2]
let arr = data[0] // string[]
let count  = data[1] // number