Čtení chybových hlášek
Chybové hlášky TypeScriptu vypadají všechny podobně, a když je umíte číst, řeknou vám hodně. Tento program má tři chyby:
const hrdina = { jmeno: "Kira", zivoty: 50 };
let lektvary = 2;
console.log("Životy:", hrdina.zivty);
console.log("Lektvary:", lektvray);
console.log("Šípy:", sipy);TypeScript ohlásí všechny tři najednou, každou na samostatném řádku:
main.ts(4,31): error TS2551: Property 'zivty' does not exist on type '{ jmeno: string; zivoty: number; }'. Did you mean 'zivoty'?
main.ts(5,26): error TS2552: Cannot find name 'lektvray'. Did you mean 'lektvary'?
main.ts(6,22): error TS2304: Cannot find name 'sipy'.Každý řádek čtěte zleva:
main.tsje soubor s chybou, tedy ten v editoru.(4,31)je místo chyby: řádek 4, sloupec 31. Čísla řádků vidíte v editoru vlevo. Sloupec říká, kolikátý znak na řádku to je, počítáno od 1 i s mezerami. Písmeno s diakritikou, třeba Ž, se počítá jako jeden znak. TypeScript ukazuje na začátek toho, co je špatně, tady na první písmeno slovazivty.error TS2551říká, že jde o chybu, aTS2551je její kód. Každý druh chyby má své číslo. Když vám hláška nebude jasná, vyhledejte její kód na internetu, třeba „TS2551“, a najdete vysvětlení i příklady.- Za dvojtečkou následuje anglický popis chyby.
Property 'zivty' does not exist on type '{ jmeno: string; zivoty: number; }'znamená, že objekt nemá vlastnostzivty. V uvozovkách je typ objektu: objekt s vlastnostíjmeno, která je text (string), a s vlastnostízivoty, která je číslo. TypeScript ho odvodil z objektu na řádku 1.
Když se chybný název podobá nějakému existujícímu, TypeScript přidá radu Did you mean 'zivoty'? (nemysleli jste zivoty?) a většinou je to správná oprava. Radí u vlastností (TS2551) i u proměnných: Cannot find name 'lektvray' (TS2552) znamená, že TypeScript žádnou proměnnou lektvray nezná, ale zná lektvary. Když se mu žádný existující název nepodobá, hláška zní jen Cannot find name 'sipy' (TS2304): program žádnou proměnnou sipy nemá. Možná jste ji zapomněli vytvořit, nebo jste ji pojmenovali jinak.
TypeScript zkontroluje celý program a ohlásí všechny typové chyby, které najde. Začněte vždy první z nich: opravte ji a program spusťte znovu. Jedna chyba totiž může způsobit několik hlášek. Když se překlepnete v názvu proměnné tam, kde ji vytváříte, ohlásí TypeScript chybu na každém řádku, který ji používá, a jediná oprava je všechny odstraní.
A naopak: po opravě se mohou objevit nové chyby. TypeScript totiž ještě před typy kontroluje, jestli je program správně zapsaný, se všemi závorkami a uvozovkami na svém místě. Když je něco takového špatně, ohlásí jen to a typy nekontroluje, dokud chybu neopravíte:
const hrdina = { jmeno: "Kira", zivoty: 50 };
console.log("Životy:", hrdina.zivoty;main.ts(2,37): error TS1005: ')' expected.')' expected znamená, že TypeScript tam, kde je středník, čekal ), protože závorka za console.log zůstala neuzavřená.
Jak psát:
Pokyny
Program v editoru vítá Kiru v hostinci, ale má tři chyby. Spusťte ho: TypeScript ohlásí jen jednu z nich, chybu v zápisu programu. Opravte ji a program spusťte znovu. Teď TypeScript ukáže zbylé dvě. Opravte i ty, aby program vypsal:
Vítejte v hostinci U Zlatého poháru
Hostinský: Bruno
Kira si objedná polévku. Zbývá zlata: 105Začněte programovat zdarma
3/7