Pole
Typy mají i pole. Pole textů má typ string[] (čte se „pole stringů“), pole čísel typ number[]: typ prvků a za ním hranaté závorky. Většinou ho TypeScript odvodí z prvků:
const inventar = ["Léčivý lektvar", "Stříbrný meč"]; // string[]
const ceny = [15, 45]; // number[]Z typu TypeScript pozná dvě věci. Každý prvek pole inventar je typu string, takže inventar[0].toUpperCase() je v pořádku. A smí do něj jen texty:
const inventar = ["Léčivý lektvar", "Stříbrný meč"];
inventar.push(20);main.ts(2,15): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.push je metoda, tedy funkce, která patří k poli, a 20 je její argument, hodnota v závorkách. Argument se uloží do parametru metody a ten má u pole textů typ string. Číslo se do něj nevejde.
Typ pole můžete napsat i jako anotaci: const ceny: number[] = [15, 45];. S prvky to potřeba není. Potřeba je to u prázdného pole. Z [] TypeScript nepozná, co do pole přijde, a tak se to snaží zjistit z toho, co do něj program přidává, a pustí do něj cokoli:
const korist = [];
korist.push("Zlatý prsten");
korist.push(5);
console.log(korist);Tento program proběhne bez chyby a vypíše ["Zlatý prsten", 5]. V jiných programech to TypeScript naopak vzdá a ohlásí Variable 'korist' implicitly has type 'any[]' in some locations where its type cannot be determined. (O typu any se dozvíte na konci této lekce.) Prázdnému poli proto typ napište:
const korist: string[] = [];
korist.push("Zlatý prsten");
korist.push(5);main.ts(3,13): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.Typická chyba: const korist: [] = [];. Typ [], před kterým nic není, znamená pole, které je vždycky prázdné, takže do něj nejde přidat nic: Argument of type '"Zlatý prsten"' is not assignable to parameter of type 'never'. (never je typ, který nemá vůbec žádné hodnoty.) Před závorky napište typ prvků: string[].
Jak psát:
Pokyny
Kira našla 20 šípů, ale inventář obsahuje názvy předmětů, a tak do něj TypeScript číslo nepustí. Nahraďte 20 textem "Šípy", aby program vypsal:
["Léčivý lektvar", "Stříbrný meč", "Starý klíč", "Šípy"]Kira otevře truhlu. Na konci programu vytvořte prázdné pole korist pro názvy předmětů z truhly, s typem string[].
Přidejte do pole korist texty "Zlatý prsten" a "Dračí šupina" a pole vypište, aby program vypsal ještě:
["Zlatý prsten", "Dračí šupina"]Začněte programovat zdarma
5/9