Typy pri deštrukturalizácii polí


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

Je možné napísať niečo také?

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

Odpoveď č. 1

Toto je správna syntax pre deštrukturalizáciu poľa v rámci zoznamu argumentov:

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

}

Odpoveď č. 2

Áno, je. V TypeScripte to robíte jednoduchým spôsobom pomocou typov polí, vytváraním n-tíc.

type StringKeyValuePair = [string, string];

Môžete robiť, čo chcete, tým, že pomenujete pole:

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

Ale nepripomenuli by ste vnútorný parameter. Ďalšia možnosť je použiť deštrukturalizáciu podľa párov:

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

Odpoveď č. 3

S TypeScript 4.0 môžu typy n-tíc teraz poskytovať označenia

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

Súvisiace články