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 };.Hrdinapak 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 sDid you mean to write 'cena'?. - Nepovinná vlastnost má otazník,
prezdivka?: string. Smí chybět, její typ jestring | undefineda před použitím se musí zkontrolovat. - Vlastnost
readonlynejde po vytvoření objektu změnit:Cannot assign to 'jmeno' because it is a read-only property.Na rozdíl odconstchrá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 aBossse dá použít všude, kde je potřebaPrisera. - 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 vfor...ofje každýpredmettypuPredmet. - 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.
Jak psát:
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ýchNapište funkci celkovaOdmena, která dostane pole úkolů (Ukol[]) a vrátí součet odměn. Vypište:
Odměna celkem: 200 zlatýchZačněte programovat zdarma
10/10