Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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#.
-
Podobná syntaxe: JavaScript, TypeScript a C# jsou v sadě jazyků C. Tato podobnost znamená, že C# už můžete číst a rozumět. 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
,else
switch
jsou stejné. Příkazy smyčkyfor
,while
ado
...while
jsou stejné. Stejná klíčová slova proclass
ainterface
jsou v jazycích C# i TypeScript. Modifikátory přístupu v TypeScriptu a C#, odpublic
doprivate
, jsou stejné. -
Token
=>
: Všechny jazyky podporují lehké definice funkcí. V jazyce C# se označují jako výrazy lambda v JavaScriptu, obvykle se označují jako funkce se šipkami. - Hierarchie funkcí: Všechny tři jazyky podporují místní funkce, což jsou funkce definované v jiných funkcích.
-
Async / Await: Všechny tři jazyky sdílejí stejná klíčová slova
async
aawait
pro asynchronní programování. - Garbage collector: Všechny tři jazyky spoléhají na garbage collector pro automatickou správu paměti.
-
Model událostí: Syntaxe jazyka
event
C#je podobná modelu JavaScriptu pro události modelu DOM (Document Object Model). - 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 naučíte koncepty, které nejsou součástí JavaScriptu. Některé z těchto konceptů vás můžou znát, pokud používáte TypeScript:
-
Systém typů jazyka C#: C# je silně typovaný jazyk. Každá proměnná má typ a tento typ se nemůže změnit. Definujete
class
nebostruct
typy. Můžete definovatinterface
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í. -
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
ověří, zda proměnná odpovídá nějakému vzoru. Výraz založený naswitch
vzorech poskytuje bohatou syntaxi pro kontrolu proměnné a rozhodování na základě jejích charakteristik. - 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ů. Surové řetězcové literály poskytují způsob, jak minimalizovat escape sekvence v textu.
-
Typy povolující hodnotu null a typy nepovolující hodnotu null: C# podporuje typy hodnot povolujících hodnotu null a odkazové typy povolující hodnotu null přidáním přípony
?
k typu. U nulovatelných typů vás kompilátor upozorní, pokud před dereferencí výrazu nekontrolujetenull
. U nenulových typů vás kompilátor upozorní, pokud k této proměnné možná přiřadítenull
hodnotu. Tyto funkce mohou minimalizovat vyvolání System.NullReferenceException vaší aplikací. Syntaxe může být známá z použití TypeScriptu?
pro volitelné vlastnosti. - 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, stanou se zřejmými i další rozdíly, ale mnohé z těchto rozdílů jsou menšího rozsahu.
Některé známé funkce a idiomy z JavaScriptu a TypeScriptu nejsou v jazyce C#dostupné:
-
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 dynamické vazby. -
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 můžete nastavit vlastnost__proto__
, abyste nastavili základní typ na jakékoli instanci. - 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:
- Typy sjednocení: C# nepodporuje typy sjednocení. Návrhy designu však probíhají.
-
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 mohou mít odpovídající atributy. Pro další dekorátory můžete vytvořit vlastní atributy. - Mírnější syntaxe: Kompilátor jazyka C# syntakticky analyzuje kód přísně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 na straně klienta pomocí WebAssembly. Blazor podporuje spolupráci s vašimi oblíbenými javascriptovými nebo typescriptovými knihovnami.