Bagikan melalui


Peta strategi untuk pengembang JavaScript dan TypeScript mempelajari C#

C#, TypeScript, dan JavaScript adalah anggota keluarga bahasa C. Kesamaan antara bahasa membantu Anda menjadi produktif dengan cepat di C#.

  1. Sintaks serupa: JavaScript, TypeScript, dan C# berada dalam keluarga bahasa C. Kesamaan itu berarti Anda sudah dapat membaca dan memahami C#. Ada beberapa perbedaan, tetapi sebagian besar sintaksnya sama dengan JavaScript, dan C. Kurung kurawal dan titik koma sudah akrab. Pernyataan kontrol seperti if, else, switch sama. Pernyataan perulangan for, while, dan do...while semuanya sama. Kata kunci yang sama untuk class dan interface berada di C# dan TypeScript. Pengubah akses di TypeScript dan C#, dari public ke private, sama.
  2. Token =>: Semua bahasa mendukung definisi fungsi ringan. Di C#, ekspresi tersebut disebut sebagai ekspresi lambda , di JavaScript, ekspresi tersebut biasanya disebut fungsi panah .
  3. hierarki Fungsi: Ketiga bahasa mendukung fungsi lokal, yang merupakan fungsi yang ditentukan dalam fungsi lain.
  4. Asinkron / Tunggu: Ketiga bahasa berbagi kata kunci async dan await yang sama untuk pemrograman asinkron.
  5. pengumpulan sampah: Ketiga bahasa mengandalkan pengumpul sampah untuk manajemen memori otomatis.
  6. Model peristiwa: Sintaks event C#mirip dengan model JavaScript untuk peristiwa model objek dokumen (DOM).
  7. Manajer paket: NuGet adalah manajer paket yang paling umum untuk C# dan .NET, mirip dengan npm untuk aplikasi JavaScript. Pustaka C# dikirimkan dalam rakitan .

Saat Anda mempelajari C#, Anda mempelajari konsep yang bukan bagian dari JavaScript. Beberapa konsep ini mungkin sudah tidak asing bagi Anda jika Anda menggunakan TypeScript:

  1. C# Type System: C# adalah bahasa yang kuat dalam pengetikan. Setiap variabel memiliki jenis, dan jenis tersebut tidak dapat berubah. Anda menentukan jenis class atau struct. Anda dapat menentukan definisi interface yang mendefinisikan perilaku yang diimplementasikan oleh tipe lain. TypeScript mencakup banyak konsep ini, tetapi karena TypeScript dibangun di JavaScript, sistem jenis tidak seketat.
  2. Pencocokan pola: Pencocokan pola memungkinkan pernyataan dan ekspresi kondisional ringkas berdasarkan bentuk struktur data yang kompleks. Ekspresi is memeriksa apakah variabel "sesuai dengan" suatu pola. Ekspresi switch berbasis pola menyediakan sintaks yang kaya untuk memeriksa variabel dan membuat keputusan berdasarkan karakteristiknya.
  3. interpolasi string dan literal string mentah: Interpolasi string memungkinkan Anda menyisipkan ekspresi yang dievaluasi ke dalam sebuah string, daripada menggunakan pengidentifikasi posisi. Literal string mentah menyediakan cara untuk meminimalkan sekuens escape dalam teks.
  4. Jenis nullable dan non-nullable: C# mendukung jenis nilai nullable, dan jenis referensi nullable dengan menambahkan akhiran ? ke jenis. Untuk jenis nullable, pengkompilasi memperingatkan Anda jika Anda tidak memeriksa null sebelum mendereferensiasi ekspresi. Untuk jenis yang tidak dapat diubah ke null, pengkompilasi memperingatkan Anda jika Anda mungkin menetapkan nilai null ke variabel tersebut. Fitur-fitur ini dapat meminimalkan aplikasi Anda melemparkan System.NullReferenceException. Sintaks ? mungkin sudah dikenal dari penggunaan TypeScript untuk properti opsional.
  5. LINQ: Kueri terintegrasi bahasa (LINQ) menyediakan sintaks umum untuk mengkueri dan mengubah data, terlepas dari penyimpanannya.

Saat Anda mempelajari lebih banyak perbedaan lain menjadi jelas, tetapi banyak dari perbedaan tersebut lebih kecil dalam cakupan.

Beberapa fitur dan idiom yang sudah dikenal dari JavaScript dan TypeScript tidak tersedia di C#:

  1. jenis dinamis: C# menggunakan pengetikan statis. Deklarasi variabel mencakup jenis, dan jenis tersebut tidak dapat berubah. Ada jenis dynamic dalam C# yang menyediakan pengikatan runtime.
  2. warisan prototipal: Warisan C# adalah bagian dari deklarasi jenis. Deklarasi C# class menyatakan kelas dasar apa pun. Di JavaScript, Anda dapat mengatur properti __proto__ untuk mengatur jenis dasar pada instans apa pun.
  3. Bahasa yang ditafsirkan: Kode C# harus dikompilasi sebelum Anda menjalankannya. Kode JavaScript dapat dijalankan langsung di browser.

Selain itu, beberapa fitur TypeScript lainnya tidak tersedia di C#:

  1. jenis tipe union: C# tidak mendukung tipe union. Namun, proposal desain sedang dalam tahap pengembangan.
  2. Dekorator: C# tidak memiliki dekorator. Beberapa dekorator umum, seperti @sealed adalah kata kunci yang telah disediakan dalam pemrograman C#. Dekorator umum lainnya mungkin memiliki Atribut yang sesuai. Untuk dekorator lainnya, Anda dapat membuat atribut Anda sendiri.
  3. Sintaks yang lebih pemaaf: Pengkompilasi C# mengurai kode lebih ketat daripada yang diperlukan JavaScript.

Jika Anda membangun aplikasi web, Anda harus mempertimbangkan untuk menggunakan Blazor untuk membangun aplikasi Anda. Blazor adalah framework web full-stack yang dibuat untuk .NET dan C#. Komponen Blazor dapat berjalan di server, sebagai rakitan .NET, atau pada klien menggunakan WebAssembly. Blazor mendukung interop dengan pustaka JavaScript atau TypeScript favorit Anda.