Typer vid destrukturering av arrayer
function f([a,b,c]) {
// this works but a,b and c are any
}
är det möjligt att skriva något sådant?
function f([a: number,b: number,c: number]) {
// being a, b and c typed as number
}
Svar #1
Detta är korrekt syntax för att destrukturera en array inuti en argumentlista:
function f([a,b,c]: [number, number, number]) {
}
Svar #2
Ja, det är det. I TypeScript gör du det med typer av array på ett enkelt sätt, genom att skapa tupler.
type StringKeyValuePair = [string, string];
Du kan göra vad du vill genom att namnge arrayen:
function f(xs: [number, number, number]) {}
Men du skulle inte namnge den interna parametern. En annan möjlighet är att använda destrukturering i par:
function f([a,b,c]: [number, number, number]) {}
Svar #3
Med TypeScript 4.0 kan tuplar nu ha etiketter
type Range = [start: number, end: number]
