TypeScript představil nový datový typ nazvaný n-tice. N-tice může obsahovat dvě hodnoty různých datových typů.
zvažte následující příklad proměnných typu číslo, řetězec a n-tice.
kopírovat
var empId: number = 1;var empName: string = "Steve"; // Tuple type variable var employee: = ;
ve výše uvedeném příkladu jsme definovali proměnnou empId
jako typ čísla a empName
jako typ řetězce s hodnotami. Zde jsme deklarovali a přiřadili dvě proměnné k id a jménu zaměstnance. Totéž lze dosáhnout použitím jediné proměnné typu n-tice. employee
je proměnná typu n-tice se dvěma hodnotami typu číslo a řetězec. Tím se odstraní potřeba deklarovat dvě různé proměnné.
proměnná typu n-tice může obsahovat více datových typů, jak je uvedeno níže.
kopírovat
var employee: = ;var person: = ;var user: ;// declare tuple variableuser = ;// initialize tuple variable
můžete deklarovat pole n-tice také.
kopírovat
var employee: ;employee = , , ];
TypeScript generuje pole v JavaScriptu pro proměnnou n-tice. Například var employee: =
bude v JavaScriptu zkompilováno jako var employee =
.
přístup k prvkům n-tice
můžeme přistupovat k prvkům n-tice pomocí indexu, stejným způsobem jako pole. Index začíná od nuly.
kopírovat
var employee: = ;employee; // returns 1employee; // returns "Steve"
přidat elementy do n-tice
nové elementy můžete přidat do n-tice metodou push ().
kopírovat
var employee: = ;employee.push(2, "Bill"); console.log(employee); //Output:
to je povoleno, protože do n-tice přidáváme hodnoty čísel a řetězců a platí pro n-tice employee
.
nyní zkusme do n-tice přidat booleovskou hodnotu.
employee.push(true)
výše uvedený příklad vyvolá následující chybu:
test.ts(4,15): error TS2345: Argument of type 'true' is not assignable to parameter of type 'number | string'.
dostaneme chybu, která říká, že přidání booleovské hodnoty do n-tice typu ‚ number / string | není povoleno. Proto n-tice deklarovaná jako ‚number / string‘ může ukládat pouze hodnoty čísel a řetězců.
n-tice je jako pole. Můžeme tedy použít metody pole na n-tice, jako je pop (), concat () atd.
Kopírovat
var employee: = ;// retrieving value by index and performing an operation employee = employee.concat(" Jobs"); console.log(employee); //Output: