C öğrenen JavaScript ve TypeScript geliştiricileri için yol haritası#
C#, TypeScript ve JavaScript'in tümü C dil ailesinin üyeleridir. Diller arasındaki benzerlikler, C# dilinde hızla üretken olmanıza yardımcı olur.
- Benzer söz dizimi: JavaScript, TypeScript ve C# C dil ailesindedir. Bu benzerlik, C# okuyabileceğiniz ve anlayabileceğiniz anlamına gelir. Bazı farklılıklar vardır, ancak söz diziminin çoğu JavaScript ve C ile aynıdır. Küme ayraçları ve noktalı virgüller tanıdıktır. gibi
if
else
switch
denetim deyimleri aynıdır. ,while
vedo
...while
döngü deyimlerifor
aynıdır. ve içinclass
interface
aynı anahtar sözcükler hem C# hem de TypeScript'te bulunur. TypeScript ve C# içindeki erişim değiştiricileri ilepublic
private
ile aynıdır. - Belirteç
=>
: Tüm diller basit işlev tanımlarını destekler. C# dilinde bunlar lambda ifadeleri olarak adlandırılır, JavaScript'te bunlar genellikle ok işlevleri olarak adlandırılır. - İşlev hiyerarşileri: Üç dil de diğer işlevlerde tanımlanan işlevler olan yerel işlevleri destekler.
- Async / Await: Üç dil de zaman uyumsuz programlama için aynı
async
veawait
anahtar sözcükleri paylaşır. - Çöp toplama: Üç dil de otomatik bellek yönetimi için bir çöp toplayıcıyı temel alır.
- Olay modeli: C#'nin
event
söz dizimi, Belge nesne modeli (DOM) olayları için JavaScript'in modeline benzer. - Paket yöneticisi: NuGet , JavaScript uygulamaları için npm'ye benzer şekilde C# ve .NET için en yaygın paket yöneticisidir. C# kitaplıkları derlemelerde teslim edilir.
C# öğrenmeye devam ettikçe JavaScript'in parçası olmayan kavramları öğreneceksiniz. TypeScript kullanıyorsanız bu kavramlardan bazıları size tanıdık gelebilir:
- C# Tür Sistemi: C# kesin olarak yazılan bir dildir. Her değişkenin bir türü vardır ve bu tür değiştirilemez. Veya
struct
türlerini tanımlarsınızclass
. Diğer türler tarafından uygulanan davranışı tanımlayan tanımları tanımlayabilirsinizinterface
. TypeScript bu kavramların çoğunu içerir, ancak TypeScript JavaScript üzerinde oluşturulduğundan tür sistemi o kadar katı değildir. - Desen eşleştirme: Desen eşleştirme, karmaşık veri yapılarının şekline göre kısa koşullu deyimleri ve ifadeleri etkinleştirir. İfade, bir değişkenin
is
"bir desen" olup olmadığını denetler. Desen tabanlıswitch
ifade , bir değişkeni incelemek ve özelliklerine göre kararlar almak için zengin bir söz dizimi sağlar. - Dize ilişkilendirmesi ve ham dize değişmez değerleri: Dize ilişkilendirmesi, konumsal tanımlayıcıları kullanmak yerine bir dizeye değerlendirilen ifadeler eklemenize olanak tanır. Ham dize değişmez değerleri, metindeki kaçış dizilerini en aza indirmek için bir yol sağlar.
- Null atanabilir ve boş değer atanamayan türler: C#, son eki bir türe ekleyerek
?
null atanabilir değer türlerini ve null atanabilir başvuru türlerini destekler. Null atanabilir türler için, ifadenin başvurularını kaldırmadan önce denetlemezseniznull
derleyici sizi uyarır. Null değer atanamayan türler için, bu değişkene birnull
değer atayabilecekseniz derleyici sizi uyarır. Bu özellikler uygulamanızın bir System.NullReferenceExceptionoluşturmasını en aza indirgeyebilir. Söz dizimi, TypeScript'in isteğe bağlı özellikler için kullanımı hakkında?
bilgi sahibi olabilir. - LINQ: Dil tümleşik sorgusu (LINQ), depolama alanına bakılmaksızın verileri sorgulamak ve dönüştürmek için ortak bir söz dizimi sağlar.
Daha fazla bilgi edindikçe diğer farklar belirginleşir, ancak bu farklılıkların çoğu kapsam olarak daha küçüktür.
JavaScript ve TypeScript'ten bazı tanıdık özellikler ve deyimler C# dilinde kullanılamaz:
- dinamik türler: C# statik yazma kullanır. Değişken bildirimi türü içerir ve bu tür değiştirilemez. C# dilinde çalışma zamanı bağlaması sağlayan bir
dynamic
tür vardır. - Prototip devralma: C# devralma türü bildiriminin bir parçasıdır. C#
class
bildirimi herhangi bir temel sınıfı belirtir. JavaScript'te, herhangi bir örnekte temel türü ayarlamak için özelliğini ayarlayabilirsiniz__proto__
. - Yorumlanan dil: C# kodu çalıştırılmadan önce derlenmelidir. JavaScript kodu doğrudan tarayıcıda çalıştırılabilir.
Buna ek olarak, C# dilinde birkaç TypeScript özelliği daha kullanılamaz:
- Birleşim türleri: C# birleşim türlerini desteklemez. Ancak tasarım teklifleri devam etmektedir.
- Dekoratörler: C# öğesinin dekoratörleri yoktur. C# dilinde ayrılmış anahtar sözcükler gibi
@sealed
bazı yaygın dekoratörler. Diğer ortak dekoratörlerin karşılık gelen Öznitelikleri olabilir. Diğer dekoratörler için kendi özniteliklerinizi oluşturabilirsiniz. - Daha affedici söz dizimi: C# derleyicisi kodu JavaScript'in gerektirdiğinden daha katı bir şekilde ayrıştırıyor.
Bir web uygulaması oluşturuyorsanız uygulamanızı derlemek için Blazor'ı kullanmayı düşünmelisiniz. Blazor, .NET ve C# için oluşturulmuş bir tam yığın web çerçevesidir. Blazor bileşenleri sunucuda, .NET derlemeleri olarak veya WebAssembly kullanarak istemcide çalıştırılabilir. Blazor, sık kullandığınız JavaScript veya TypeScript kitaplıklarıyla birlikte çalışmanızı destekler.