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.
Jak psát:
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
2/9