TypeScript – krotka [tuple]

TypeScript nie wspiera bezpośrednio krotek – robi to poprzez wykorzystanie wymuszenia typów na elementach tablicy.

Wymuszanie typu elementów tablicy

TypeScript pozwala na ustalenie typu dla każdego elementu tablicy z osobna:

let someArray: [number,string,boolean,number];

Co wymusza użycie dokładnie takich samych typów w odpowiednich miejscach tablicy:

someArray = [1,'a',false,1];

TypeScript będzie „bronił” zarówno odpowiedniego rozmiaru tablicy jak i typów:

someArray = [1]; //nie dziala - za malo elementow
someArray = [1,2,3,4]; //nie dziala - niepoprawne typy elementow

Problem

Niestety ale TypeScript pozwala na dodawanie elementów to takich tablic z wykorzystaniem funkcji push:

someArray = [1,'a',false,1];
someArray.push('someElement');
someArray.push(1);
...

Definiowanie krotki

Tak więc chcąc stworzyć krotkę, należy wykorzystać powyższy mechanizm:

let tuple: [number, string];

Nie wszystko jest „bronione”

Jak wyjaśnione w sekcji Problem, wciąż da się wpisać do takiej krotki dodatkowe elementy. Więc często lepszym rozwiązaniem jest stworzenie własnego typu.