Sdílet prostřednictvím


Roadmapa pro vývojáře v JavaScriptu a TypeScriptu, kteří se učí jazyk C#

C#, TypeScript a JavaScript jsou všichni členy řady jazyků C. Podobnosti mezi jazyky vám pomůžou rychle dosáhnout produktivity v jazyce C#.

  1. Podobná syntaxe: JavaScript, TypeScript a C# jsou v sadě jazyků C. Tato podobnost znamená, že jazyk C# už můžete číst a rozumět jim. Existuje několik rozdílů, ale většina syntaxe je stejná jako JavaScript a C. Složené závorky a středníky jsou známé. Řídicí příkazy jako if, elseswitch jsou stejné. Příkazy smyčky for, whilea do...while jsou stejné. Stejná klíčová slova pro class jazyk interface C# i TypeScript a jsou v jazyce C#. Modifikátory přístupu v TypeScriptu a C# publicprivatejsou stejné.
  2. Token=>: Všechny jazyky podporují jednoduché definice funkcí. V jazyce C# se označují jako výrazy lambda v JavaScriptu, obvykle se označují jako funkce se šipkami.
  3. Hierarchie funkcí: Všechny tři jazyky podporují místní funkce, což jsou funkce definované v jiných funkcích.
  4. Asynchronní / Await: Všechny tři jazyky sdílejí stejná async klíčová slova a await klíčová slova pro asynchronní programování.
  5. Uvolňování paměti: Všechny tři jazyky spoléhají na systém uvolňování paměti pro automatickou správu paměti.
  6. Model událostí: Syntaxe jazyka event C#je podobná modelu JavaScriptu pro události modelu DOM (Document Object Model).
  7. Správce balíčků: NuGet je nejběžnější správce balíčků pro C# a .NET, podobně jako npm pro javascriptové aplikace. Knihovny jazyka C# se doručují v sestaveních.

Při učení jazyka C# se seznámíte s koncepty, které nejsou součástí JavaScriptu. Některé z těchto konceptů vás můžou znát, pokud používáte TypeScript:

  1. Systém typů jazyka C#: C# je jazyk silného typu. Každá proměnná má typ a tento typ se nemůže změnit. Definujete class nebo struct typy. Můžete definovat interface definice, které definují chování implementované jinými typy. TypeScript obsahuje mnoho z těchto konceptů, ale protože TypeScript je založený na JavaScriptu, není systém typů tak striktní.
  2. Porovnávání vzorů: Porovnávání vzorů umožňuje stručné podmíněné příkazy a výrazy založené na tvaru složitých datových struktur. Výraz is zkontroluje, jestli je nějaká proměnná "is". Výraz založený na switch vzorech poskytuje bohatou syntaxi pro kontrolu proměnné a rozhodování na základě jejích charakteristik.
  3. Interpolace řetězců a nezpracované řetězcové literály: Interpolace řetězců umožňuje vložit vyhodnocené výrazy do řetězce místo použití pozičních identifikátorů. Nezpracované řetězcové literály poskytují způsob, jak minimalizovat řídicí sekvence v textu.
  4. Typy s možnou hodnotou null a bez hodnoty null: C# podporuje typy hodnot s možnou hodnotou null a odkazové typy s možnou ? hodnotou null připojením přípony k typu. U typů s možnou hodnotou null vás kompilátor upozorní, pokud před dereferencováním výrazu nekontrolujete null . U nenulových typů vás kompilátor upozorní, pokud k této proměnné možná přiřadíte null hodnotu. Tyto funkce mohou minimalizovat aplikaci vyvolání System.NullReferenceException. Syntaxe může být známá z použití TypeScriptu ? pro volitelné vlastnosti.
  5. LINQ: Jazyk integrovaný dotaz (LINQ) poskytuje běžnou syntaxi pro dotazování a transformaci dat bez ohledu na jejich úložiště.

Když se dozvíte více dalších rozdílů, zjeví se, ale mnohé z těchto rozdílů jsou v rozsahu menší.

Některé známé funkce a idiomy z JavaScriptu a TypeScriptu nejsou v jazyce C#dostupné:

  1. dynamické typy: Jazyk C# používá statické psaní. Deklarace proměnné obsahuje typ a tento typ se nemůže změnit. V jazyce C# existuje dynamic typ, který poskytuje vazbu modulu runtime.
  2. Dědičnost prototypů: Dědičnost jazyka C# je součástí deklarace typu. Deklarace jazyka C# class uvádí všechny základní třídy. V JavaScriptu __proto__ můžete nastavit vlastnost tak, aby nastavil základní typ na libovolné instanci.
  3. Interpretovaný jazyk: Před spuštěním je nutné zkompilovat kód jazyka C#. Kód JavaScriptu lze spustit přímo v prohlížeči.

Kromě toho není v jazyce C# k dispozici několik dalších funkcí TypeScriptu:

  1. Typy sjednocení: C# nepodporuje typy sjednocení. Návrhy designu však probíhají.
  2. Dekorátory: C# nemá dekorátory. Některé běžné dekorátory, jako @sealed jsou například vyhrazená klíčová slova v jazyce C#. Další běžné dekorátory můžou mít odpovídající atributy. Pro další dekorátory můžete vytvořit vlastní atributy.
  3. Složitější syntaxe: Kompilátor jazyka C# analyzuje kód přesněji, než vyžaduje JavaScript.

Pokud vytváříte webovou aplikaci, měli byste zvážit použití Blazoru k sestavení aplikace. Blazor je plnohodnotná webová architektura vytvořená pro .NET a C#. Komponenty Blazor se můžou spouštět na serveru, jako sestavení .NET nebo v klientovi pomocí WebAssembly. Blazor podporuje spolupráci s vašimi oblíbenými javascriptovými nebo typescriptovými knihovnami.