Shrnutí

V této lekci jste se naučili, že:

  • Každý parametr potřebuje typ: function vylec(zivoty: number, leceni: number). Bez něj TypeScript ohlásí Parameter 'zivoty' implicitly has an 'any' type. (TS7006). Kontroluje se každé volání: špatný argument dá TS2345.
  • Návratový typ se píše za závorku s parametry: function poskozeni(sila: number, obrana: number): number {. Když ho vynecháte, TypeScript si ho odvodí. Když ho napíšete, TypeScript podle něj kontroluje tělo funkce: větev bez return dá TS2366, hodnota špatného typu TS2322.
  • void je návratový typ funkcí, které nic nevracejí: function vypisHrdinu(jmeno: string): void. Jejich výsledek nejde použít, třeba titul.toUpperCase() dá Property 'toUpperCase' does not exist on type 'void'. Když hodnotu potřebujete, vraťte ji.
  • Volání musí předat tolik argumentů, kolik má funkce parametrů: Expected 2 arguments, but got 1. (TS2554). Když parametr přidáte, ukáže TypeScript všechna volání, která se musí změnit.
  • Nepovinný parametr má otazník: titul?: string. Uvnitř má typ string | undefined, takže ho před použitím zkontrolujte: if (titul === undefined) { ... }. Nepovinné parametry patří na konec.
  • Parametr s výchozí hodnotou, sila: number = 10 nebo jen sila = 10, je také nepovinný, ale uvnitř funkce nikdy není undefined.
  • Šipkové funkce mají typy na stejných místech jako ostatní funkce: const dvojnasobek = (n: number): number => n * 2;. Parametr s typem potřebuje závorky.
  • I funkce má typ: (sila: number) => number. Dá se pojmenovat, type Uder = (sila: number) => number;, a použít u parametrů, ve kterých je funkce. Předávejte samotnou funkci, bez závorek.
  • map vytvoří nové pole z výsledků funkce: truhly.map(zlato => zlato * 2). filter nechá prvky, pro které funkce vrátí true: prisery.filter(prisera => prisera.sila > 10). Parametr dostane typ podle pole, takže nepotřebuje anotaci.

V příští lekci, Typy objektů, budete popisovat, jak objekty vypadají: jaké mají vlastnosti a jakých typů. TypeScript pak zkontroluje každého hrdinu, předmět i příšeru ve vašem programu.

Pokyny

Teď si vše procvičte. Napište šipkovou funkci uloženou v const vylec, s parametry zivoty a leceni, oba typu number, parametrem maxZivoty s výchozí hodnotou 50 a návratovým typem number. Vrátí zivoty + leceni, ale nikdy víc než maxZivoty.

Vypište vylec(20, 15), vylec(40, 35) a vylec(40, 35, 100). Program vypíše:

35
50
75

Pomocí filter nechte jen lektvary, které léčí víc než 15, a pak je pomocí map převeďte na texty jako +20 životů. Výsledek uložte do popisky. Pak napište funkci vypisVse s parametrem radky typu string[] a návratovým typem void, která vypíše každý prvek pole radky na samostatný řádek, a zavolejte vypisVse(popisky). Program na konci vypíše:

+20 životů
+35 životů
+50 životů

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

10/10