Typy zmizí
Když kliknete na Spustit, ve skutečnosti se nespustí TypeScript, ale JavaScript. Překladač nejdřív zkontroluje typy, pak je odstraní a spustí se JavaScript, který zbyde. Podívejte se na tento program. Části : string a : number za názvy proměnných jsou typy zapsané ručně, takzvané typové anotace. Sami je budete psát od příští lekce.
let jmeno: string = "Kira";
let sipy: number = 20;
console.log(jmeno + " má " + sipy + " šípů.");Překladač z něj udělá tento JavaScript:
let jmeno = "Kira";
let sipy = 20;
console.log(jmeno + " má " + sipy + " šípů.");Oba vypíšou:
Kira má 20 šípů.Typy slouží jen ke kontrole. Když program běží, už v něm nejsou a program dělá přesně to, co by dělal stejný JavaScript. TypeScript nemění, jak váš kód funguje, takže všechno, co víte o JavaScriptu, platí dál, i s jeho překvapeními:
console.log("5" + 3);
console.log(0.1 + 0.2);Vypíše:
53
0.30000000000000004Proč TypeScript "5" + 3 neohlásí jako chybu? Protože spojit text s číslem pomocí + je v JavaScriptu platné a velmi běžné: tak se skládají zprávy jako "Zlato: " + zlato. TypeScript hlásí to, co je téměř jistě chyba, ale běžné obraty JavaScriptu nezakazuje. A 0.30000000000000004 je drobná nepřesnost desetinných čísel, kterou znáte z kurzu JavaScriptu. Ani tu TypeScript změnit nemůže.
TypeScript ale ví, že z "5" + 3 vznikne text. Když se takový text pokusíte uložit do proměnné pro čísla, ohlásí chybu:
let sipy = 20;
sipy = sipy + "5";main.ts(2,1): error TS2322: Type 'string' is not assignable to type 'number'.Tady vás typ ochrání i před +. Když je ale v proměnné text hned od začátku, text plus číslo dá zase text, všechno do sebe zapadá a TypeScript nemá co hlásit. Program pak místo sčítání spojuje, přesně jako by to dělal JavaScript. Program v editoru má dvě takové chyby.
Jak psát:
Pokyny
Spusťte program. Vypíše Šípy: 205 a TypeScript žádnou chybu neohlásí: v proměnné sipy je text "20" a text plus číslo je text. Změňte první hodnotu proměnné sipy na číslo, aby program vypsal:
Šípy: 25Druhá chyba: po odměně má Kira 12030 zlatých. Opravte ji stejným způsobem, aby program vypsal:
Šípy: 25
Zlato: 150Začněte programovat zdarma
5/7