Typen beim Destructuring von Arrays
function f([a,b,c]) {
// this works but a,b and c are any
}
Ist es möglich, so etwas zu schreiben?
function f([a: number,b: number,c: number]) {
// being a, b and c typed as number
}
Antwort #1
Dies ist die richtige Syntax zum Destrukturieren eines Arrays innerhalb einer Argumentliste:
function f([a,b,c]: [number, number, number]) {
}
Antwort #2
Ja, das ist es. In TypeScript macht man das auf einfache Weise mit Array-Typen, indem man Tupel erstellt.
type StringKeyValuePair = [string, string];
Sie können tun, was Sie wollen, indem Sie das Array benennen:
function f(xs: [number, number, number]) {}
Aber Sie würden den internen Parameter nicht benennen. Eine weitere Möglichkeit ist die Verwendung von Destrukturierung nach Paaren:
function f([a,b,c]: [number, number, number]) {}
Antwort #3
Mit TypeScript 4.0 können Tupeltypen jetzt Beschriftungen bereitstellen
type Range = [start: number, end: number]
