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 bezreturndá TS2366, hodnota špatného typu TS2322. voidje návratový typ funkcí, které nic nevracejí:function vypisHrdinu(jmeno: string): void. Jejich výsledek nejde použít, třebatitul.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á typstring | 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 = 10nebo jensila = 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. mapvytvoří nové pole z výsledků funkce:truhly.map(zlato => zlato * 2).filternechá 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.
Jak psát:
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
75Pomocí 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
10/10