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 dari for, while, dan do...while 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, 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 dan await yang sama async untuk pemrograman asinkron.
  5. Pengumpulan sampah: Ketiga bahasa mengandalkan pengumpul sampah untuk manajemen memori otomatis.
  6. Model peristiwa: Sintaks C# event 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 terus mempelajari C#, Anda akan 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 sangat ditik. Setiap variabel memiliki jenis, dan jenis tersebut tidak dapat berubah. Anda menentukan class atau struct mengetikan. Anda dapat menentukan interface definisi yang menentukan perilaku yang diterapkan oleh jenis 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 "adalah" beberapa pola. Ekspresi berbasis switch pola memberikan 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 dalam string, daripada menggunakan pengidentifikasi posisi. Literal string mentah menyediakan cara untuk meminimalkan urutan 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 mendereferensikan ekspresi. Untuk jenis yang tidak dapat diubah ke null, pengkompilasi memperingatkan Anda jika Anda mungkin menetapkan null nilai ke variabel tersebut. Fitur-fitur ini dapat meminimalkan aplikasi Anda melemparkan System.NullReferenceException. Sintaks mungkin sudah tidak asing lagi 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 dynamic jenis dalam C# yang menyediakan pengikatan runtime.
  2. Pewarisan prototipal: Warisan C# adalah bagian dari deklarasi jenis. Deklarasi C# class menyatakan kelas dasar apa pun. Di JavaScript, Anda dapat mengatur __proto__ properti 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 union: C# tidak mendukung jenis union. Namun, proposal desain sedang berlangsung.
  2. Dekorator: C# tidak memiliki dekorator. Beberapa dekorator umum, seperti @sealed kata kunci yang dipesan di C#. Dekorator umum lainnya mungkin memiliki Atribut yang sesuai. Untuk dekorator lain, Anda dapat membuat atribut Anda sendiri.
  3. Sintaks yang lebih pemaaf: Pengkompilasi C# mengurai kode secara lebih ketat daripada yang diperlukan JavaScript.

Jika Anda membangun aplikasi web, Anda harus mempertimbangkan untuk menggunakan Blazor untuk membangun aplikasi Anda. Blazor adalah kerangka kerja web tumpukan penuh 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.