Primitivní typy
TypeScript podporuje 7 primitivních typů. Primitivní datový typ označuje typ, který není objektem a nemá žádné přidružené metody. V TypeScriptu jsou všechny primitivní typy neměnné, což znamená, že jejich hodnoty nelze po přiřazení změnit.
string
Primitivní typ string uchovává textová data a jeho hodnota je vždy uzavřena do dvojitých nebo jednoduchých uvozovek.
const x: string = 'x';const y: string = 'y';Řetězce mohou zabírat více řádků, pokud jsou ohraničeny znakem zpětného apostrofu (`):
let sentence: string = `xxx, yyy`;boolean
Datový typ boolean v TypeScriptu uchovává binární hodnotu, buď true, nebo false.
const isReady: boolean = true;number
Datový typ number v TypeScriptu je reprezentován 64bitovou hodnotou s plovoucí desetinnou čárkou. Typ number může představovat celá čísla i zlomky.
TypeScript podporuje také šestnáctkový, dvojkový a osmičkový zápis, například:
const decimal: number = 10;const hexadecimal: number = 0xa00d; // Hexadecimal starts with 0xconst binary: number = 0b1010; // Binary starts with 0bconst octal: number = 0o633; // Octal starts with 0obigint
Typ bigint představuje celočíselné hodnoty, které mohou být větší než nejvyšší bezpečné celé číslo podporované typem number, tedy 2^53 - 1.
Hodnotu bigint lze vytvořit voláním vestavěné funkce BigInt() nebo přidáním n na konec libovolného celočíselného literálu:
const x: bigint = BigInt(9007199254740991);const y: bigint = 9007199254740991n;Poznámky:
- Hodnoty
bigintnelze kombinovat s hodnotaminumberani používat s vestavěným objektemMath; je nutné je převést na stejný typ. - Hodnoty
bigintjsou dostupné pouze tehdy, pokud je cílová konfigurace ES2020 nebo vyšší.
Symbol
Symboly jsou jedinečné identifikátory, které lze použít jako klíče vlastností v objektech, aby se předešlo kolizím názvů.
type Obj = { [sym: symbol]: number;};
const a = Symbol('a');const b = Symbol('b');let obj: Obj = {};obj[a] = 123;obj[b] = 456;
console.log(obj[a]); // 123console.log(obj[b]); // 456null a undefined
Typy null a undefined představují chybějící hodnotu nebo nepřítomnost jakékoli hodnoty.
Typ undefined znamená, že hodnota není přiřazena nebo inicializována, případně označuje neúmyslnou nepřítomnost hodnoty.
Typ null znamená, že víme, že daná položka nemá hodnotu, takže hodnota není dostupná, a označuje úmyslnou nepřítomnost hodnoty.
Pole
Typ array je datový typ, který může uchovávat více hodnot stejného i různého typu. Lze jej definovat následující syntaxí:
const x: string[] = ['a', 'b'];const y: Array<string> = ['a', 'b'];const j: Array<string | number> = ['a', 1, 'b', 2]; // UnionTypeScript podporuje pole pouze pro čtení pomocí následující syntaxe:
const x: readonly string[] = ['a', 'b']; // Readonly modifierconst y: ReadonlyArray<string> = ['a', 'b'];const j: ReadonlyArray<string | number> = ['a', 1, 'b', 2];j.push('x'); // InvalidTypeScript podporuje n-tice a n-tice pouze pro čtení:
const x: [string, number] = ['a', 1];const y: readonly [string, number] = ['a', 1];any
Datový typ any představuje doslova „jakoukoli“ hodnotu a je výchozí, pokud TypeScript nedokáže typ odvodit nebo pokud typ není uveden.
Při použití any kompilátor TypeScriptu vynechává kontrolu typů, takže použití any neposkytuje typovou bezpečnost. Obecně nepoužívejte any k umlčení kompilátoru při výskytu chyby; místo toho se zaměřte na její opravu, protože použití any umožňuje porušit kontrakty a přijít o výhody automatického doplňování v TypeScriptu.
Typ any může být užitečný při postupné migraci z JavaScriptu na TypeScript, protože dokáže umlčet kompilátor.
U nových projektů používejte konfiguraci TypeScriptu noImplicitAny, která umožňuje TypeScriptu hlásit chyby tam, kde je any použit nebo odvozen.
Typ any je obvykle zdrojem chyb, které mohou skrývat skutečné problémy s vašimi typy. Vyhýbejte se jeho použití, jak jen to je možné.