Kdy typ psát

Teď už umíte napsat typ ke každé proměnné. Máte to ale dělat? Pro TypeScript znamenají let zlato: number = 120; a let zlato = 120; totéž: v obou případech je zlato typu number a zlato = "hodně"; je chyba. Anotace jen opakuje, co už říká hodnota 120. Proto ji programátoři obvykle vynechávají, když proměnná dostane hodnotu hned, a typ nechají odvodit TypeScript. Kód je kratší a přehlednější, a když hodnotu změníte, nemusíte s ní měnit i typ.

Typ napište sami tam, kde hodnota TypeScriptu neřekne, co máte na mysli. Nejčastěji je to proměnná, která zatím žádnou hodnotu nemá. Bez typu a bez hodnoty do ní TypeScript dovolí uložit cokoli, stejně jako JavaScript:

let odmena;
odmena = 50;
odmena = "padesát";
console.log(odmena);

Tento program proběhne bez chyby a vypíše padesát. TypeScript jen sleduje, co do proměnné ukládáte. S typem kontroluje každou hodnotu, kterou do ní uložíte:

let odmena: number;
odmena = 50;
odmena = "padesát";
main.ts(3,1): error TS2322: Type 'string' is not assignable to type 'number'.

Bez typu se taková chyba projeví až později, tam, kde program proměnnou používá, a hláška se hůř chápe. Řekněme, že odmena dostane v jedné větvi if číslo a v druhé text. Pak TypeScript u zlato + odmena ohlásí Operator '+' cannot be applied to types 'number' and 'string | number'. TypeScript ví, že v proměnné odmena může být text, nebo číslo (to znamená string | number; víc se dozvíte v lekci 5), ale neřekne vám, který řádek tam text uložil. S let odmena: number; je chyba na řádku, kde opravdu je.

Další místa, kde je typ potřeba a která brzy poznáte:

  • Prázdné pole: z [] samotného TypeScript nepozná, co do něj přijde. const korist: string[] = []; budete psát ve cvičení o polích.
  • Parametry funkcí: ty TypeScript odvodit nedokáže, a proto jim v lekci 3 typy napíšete.
  • Proměnná, která má obsahovat víc, než napovídá její první hodnota, třeba číslo, nebo text (lekce 5).

V tomto kurzu typ píšeme tam, kde je potřeba nebo kde kód zpřehlední, a jinde ho necháváme odvodit TypeScript.

Pokyny

Spusťte program. TypeScript ohlásí chybu na řádku, který přičítá odměnu ke zlatu, ale skutečná chyba je jinde. Dejte proměnné odmena typ number a program spusťte znovu. Teď chyba ukazuje na řádek, který do proměnné odmena ukládá text. Slabá příšera dává 20 zlatých: opravte řádek tak, aby ukládal číslo 20.

Odstraňte anotace u proměnných jmeno, zlato a urovenPrisery: stejné typy TypeScript odvodí z jejich hodnot. Program dál vypisuje Kira má 140 zlatých.

Kira porazí silnější příšeru: změňte hodnotu proměnné urovenPrisery na 6, aby program vypsal:

Kira má 220 zlatých.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

2/9