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.

  1. 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 ifelseswitch denetim deyimleri aynıdır. , whileve do...while döngü deyimleri foraynıdır. ve için class interface aynı anahtar sözcükler hem C# hem de TypeScript'te bulunur. TypeScript ve C# içindeki erişim değiştiricileri ile public privateile aynıdır.
  2. 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.
  3. İşlev hiyerarşileri: Üç dil de diğer işlevlerde tanımlanan işlevler olan yerel işlevleri destekler.
  4. Async / Await: Üç dil de zaman uyumsuz programlama için aynı async ve await anahtar sözcükleri paylaşır.
  5. Çöp toplama: Üç dil de otomatik bellek yönetimi için bir çöp toplayıcıyı temel alır.
  6. Olay modeli: C#'nin event söz dizimi, Belge nesne modeli (DOM) olayları için JavaScript'in modeline benzer.
  7. 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:

  1. 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ımlayabilirsiniz interface . TypeScript bu kavramların çoğunu içerir, ancak TypeScript JavaScript üzerinde oluşturulduğundan tür sistemi o kadar katı değildir.
  2. 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.
  3. 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.
  4. 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 denetlemezseniz null derleyici sizi uyarır. Null değer atanamayan türler için, bu değişkene bir null 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.
  5. 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:

  1. 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.
  2. 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__ .
  3. 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:

  1. Birleşim türleri: C# birleşim türlerini desteklemez. Ancak tasarım teklifleri devam etmektedir.
  2. 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.
  3. 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.