Digitální agentura Cognito.cz uvádí na trh pokročilý rezervační systém WediLiv, vyvinutý speciálně pro pořadatele svateb a dalších společenských a...

Typescript nám přináší mnoho výhod. Jedna z nich je EcmaScript6 class. Je to elegantní řešení pro implementaci modelů v MVC frameworcích.
Pro běžnou komunikaci mezi aplikací a serverem se často používá JSON formát, který je zkratkou pro JavaScript Object Notation. Tady nastává problém, JSON je jen datová struktura, ne instance třídy. Takže pokud na backendu zavoláme JSON.stringify, instance třídy se změní na řetězec zakódovaného JSON objektu a všechny naše metody a typy se ztratí. Jak tedy naše typy a metody obnovíme, když znovu zavoláme JSON.parse? Použijeme node modul class-trasformer. Funguje jak na frontendu, tak na backendu. Tento modul obsahuje sadu dekorátorů a funkcí, které se o to postarají.
Samozřejmě si package nainstalujeme přes náš oblíbený package manager – yarn add class-transformer nebo npm install --save class-transformer.
Vytvoříme si jednoduchou třídu, na které si to vyzkoušíme.
Teď uděláme z instance řetězec ve formátu JSON.
Použijeme-li JSON.parse, nedostaneme instanci, ale jenom javascript objekt, a naše snaha o zavolání metody nám vrátít error.
Proto použijeme class-transformer, který znovu vytvoří instanci třídy Human.
Co se ale stane, když máme dvě instance tříd vnořené do sebe? Díky dekorátoru @Type(() => class) bude plaintoclass funkce fungovat rekurzivně a ze všech dekorovaných vlastností vytvoří instance.
V databázi máme uložený seznam uživatelů a u každého je uveden email, jméno a heslo. Chceme seznam uživatelů zobrazit v tabulce někde na frontendu a samozřejmě nechceme posílat heslo.
Nyní, když umíme využít sílu dekorátorů a class-transformerů, použijeme další modul – class-validator (je to modul od stejného autora). Ten nám bude validovat vstup uživatele, např. při registraci.
S použitím class-transformeru, class-validatoru a async/await je zápis funkce velmi elegantní a pocit z psaní backendu v typescriptu příjemný.
Digitální agentura Cognito.cz uvádí na trh pokročilý rezervační systém WediLiv, vyvinutý speciálně pro pořadatele svateb a dalších společenských a...
Zatímco o významu poměru čísel 90:60:90 pro vývoj lidstva pochybuje málokdo, skutečnost, že život, vesmír a vůbec řídí konstanty jako 9.81, 6.674 ...
Marketing je divoká jízda plná změn, které přicházejí a odcházejí rychleji než nadšení pro nové sociální trendy. Co fungovalo včera, dnes už nemus...