Shrnutí

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

  • TypeScript odvodí typ objektu z jeho vlastností: { jmeno: string; zivoty: number; }. Vlastnost, která v typu není, přidat nejde (Property 'zlato' does not exist on type ...), a proto dejte objektu všechny vlastnosti hned při vytvoření.
  • Typ objektu můžete napsat jako anotaci, let cil: { jmeno: string; zivoty: number };, nebo ho pojmenovat typovým aliasem: type Hrdina = { jmeno: string; zivoty: number };. Hrdina pak použijete u proměnných, parametrů, návratových typů i polí (Hrdina[]).
  • V objektovém literálu dá chybějící vlastnost TS2741 (Property 'cena' is missing in type ...), přebývající TS2353 a překlep TS2561 s Did you mean to write 'cena'?.
  • Nepovinná vlastnost má otazník, prezdivka?: string. Smí chybět, její typ je string | undefined a před použitím se musí zkontrolovat.
  • Vlastnost readonly nejde po vytvoření objektu změnit: Cannot assign to 'jmeno' because it is a read-only property. Na rozdíl od const chrání jednu vlastnost, ne proměnnou.
  • Objekt popisuje i rozhraní: interface Prisera { jmeno: string; zivoty: number }. interface Boss extends Prisera { faze: number } přidá vlastnosti a Boss se dá použít všude, kde je potřeba Prisera.
  • Vlastnost může obsahovat další objekt: pozice: Pozice. Vnitřní typy s vlastním názvem zkracují typy i chybové hlášky.
  • S Predmet[] se kontroluje každý prvek pole a v for...of je každý predmet typu Predmet.
  • Ve funkcích jsou typy objektů typy parametrů (function trenuj(prisera: Prisera): void) i návratové typy (function vytvorPriseru(jmeno: string): Prisera). Funkce, která mění vlastnost, mění přímo ten objekt, který jí předáte, ne jeho kopii.

V příští lekci, Sjednocené typy a zužování, poznáte typy, které připouštějí několik druhů hodnot, třeba string | number nebo cíl, který může být null, a uvidíte, jak TypeScript sleduje vaše podmínky, aby věděl, jakou hodnotu právě máte.

Pokyny

Teď si vše procvičte. Vytvořte rozhraní Ukol s vlastností jen pro čtení id (typu number), vlastnostmi nazev (typu string) a odmena (typu number) a nepovinnou vlastností poznamka (typu string).

Vytvořte pole ukoly typu Ukol[] se třemi úkoly: id 1, „Vlci v lese“, 50 zlatých; id 2, „Ztracená koruna“, 120 zlatých, s poznámkou "zeptat se mlynáře"; id 3, „Skřetí most“, 30 zlatých. Napište funkci popisUkolu, která dostane úkol (typu Ukol) a vrátí jeho řádek; když má úkol poznámku, přidá ji na konec do závorky. Cyklem for...of vypište všechny úkoly:

#1 Vlci v lese: 50 zlatých
#2 Ztracená koruna: 120 zlatých (zeptat se mlynáře)
#3 Skřetí most: 30 zlatých

Napište funkci celkovaOdmena, která dostane pole úkolů (Ukol[]) a vrátí součet odměn. Vypište:

Odměna celkem: 200 zlatých

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