Website-Suche

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]

Verwandte Artikel