Vyhledávání na webu

Typy při destrukturalizaci polí


function f([a,b,c]) {
  // this works but a,b and c are any
}

Je možné napsat něco takového?

function f([a: number,b: number,c: number]) {
  // being a, b and c typed as number 
}

Odpověď č. 1

Toto je správná syntaxe pro destrukturalizaci pole uvnitř seznamu argumentů:

function f([a,b,c]: [number, number, number]) {

}

Odpověď č. 2

Ano, je. V TypeScriptu to děláte pomocí typů pole jednoduchým způsobem, vytvářením n-tic.

type StringKeyValuePair = [string, string];

Můžete dělat, co chcete, tím, že pojmenujete pole:

function f(xs: [number, number, number]) {}

Ale vnitřní parametr byste nenazvali. Další možností je použít destrukturování po párech:

function f([a,b,c]: [number, number, number]) {}

Odpověď č. 3

S TypeScriptem 4.0 mohou nyní typy n-tic poskytovat štítky

type Range = [start: number, end: number]

Související články