Bahasa Pemrograman

TypeScript

Jalur TypeScript dari fondasi tipe sampai pemrograman level tipe dan pengerjaan proyek profesional dengan strict mode.

TypeScript adalah JavaScript dengan sistem tipe statis, dan telah menjadi bahasa bawaan bagi basis kode JavaScript yang serius. Jalur ini mengajarkan tipe sebagai alat desain: inferensi lebih dahulu, generics kedua, dan pemrograman level tipe paling akhir, dengan strict mode sejak konfigurasi pertama. Rangkaian 51 topik berjalan dari anotasi pertama sampai gerbang pemeriksaan tipe pada CI, dan kemampuan JavaScript murni diasumsikan karena TypeScript dibangun di atasnya. Lingkungan yang diperlukan berupa Node.js 20+ dengan npm serta editor yang menjalankan language server TypeScript.

Mengenal TypeScript 3 pelajaran

Modul pembuka: apa itu TypeScript, cara kerja compiler-nya, dan penyiapan lingkungan kerja.

  1. Apa Itu TypeScript ?Tipe sebagai dokumentasi yang dapat diperiksa compiler dan kisah adopsi TypeScript di industri.
  2. Cara Kerja TypeScriptCompiler tsc, type erasure, dan mental model TypeScript tanpa biaya saat runtime.
  3. Penyiapan LingkunganMemasang Node.js dan TypeScript, menginisialisasi tsconfig, serta memakai mode watch dan language server.
Fondasi Tipe 6 pelajaran

Modul fondasi penulisan tipe: anotasi, tipe primitif, inferensi, array, tuple, objek, dan union.

  1. Anotasi PertamaMenulis anotasi tipe : string dan : number pada variabel serta tanda tangan fungsi.
  2. Tipe PrimitifTipe string, number, boolean, null, undefined, bigint, dan symbol beserta aturan pemakaiannya.
  3. InferensiCara compiler menyimpulkan tipe tanpa anotasi dan kapan anotasi eksplisit benar-benar membantu.
  4. Array dan TuplePengetikan array dengan T[] dan Array<T> serta tuple berbentuk tetap untuk data terstruktur.
  5. Tipe ObjekMendefinisikan bentuk objek, properti opsional dengan ?, dan modifier readonly.
  6. Union dan Tipe LiteralMenggabungkan tipe dengan |, melakukan narrowing berdasarkan nilai, dan memakai literal sebagai enum ringan.
Sistem Tipe 6 pelajaran

Modul inti sistem tipe: type alias vs interface, tipe fungsi, narrowing, generics, dan utility types.

  1. Type Alias vs InterfaceMembandingkan type dan interface dari sisi sintaks, ekstensi, pesan error, dan pemakaiannya.
  2. Tipe FungsiMengetik parameter dan kembalian fungsi, void, never, serta overload.
  3. NarrowingMempersempit union melalui typeof, in, instanceof, truthiness, dan pemeriksaan ekshaustif.
  4. GenericsParameter tipe, inferensi di titik pemanggilan, dan menyingkap rahasia Array<T>.
  5. Batasan GenericsMembatasi parameter tipe dengan extends, keyof, dan nilai bawaan parameter tipe.
  6. Utility TypesMemakai Partial, Required, Pick, Omit, Record, dan Readonly dalam praktik sehari-hari.
Objek dan Kelas 5 pelajaran

Modul pemodelan berorientasi objek: implements, kelas TS, modifier akses, kelas abstrak, dan index signature.

  1. ImplementsMembuat kelas yang memenuhi interface dan melihat structural typing dalam praktik.
  2. Kelas dalam TypeScriptDeklarasi field, modifier readonly, dan parameter properties pada kelas TypeScript.
  3. Modifier AksesPerbedaan public, private, protected, serta #private dan private pada kelas.
  4. Kelas AbstrakAnggota abstrak dan pola template method dengan kelas abstrak.
  5. Index Signature dan RecordMengetik objek berkunci dinamis dengan index signature dan Record beserta pola akses yang aman.
Tipe Lanjutan 6 pelajaran

Modul manipulasi tipe: intersection, union diskriminatif, keyof, typeof, mapped, conditional, dan template literal types.

  1. IntersectionMenggabungkan tipe dengan &, mengenali konflik, dan memahami kapan hasilnya menjadi never.
  2. Union DiskriminatifMemodelkan data dengan field kind dan switch ekshaustif sebagai pola andalan.
  3. Keyof dan TypeofMenurunkan tipe dari nilai dan menulis akses properti yang aman.
  4. Mapped TypesMembangun transformer tipe atas bentuk objek dengan mapped types.
  5. Conditional TypesTipe bersyarat T extends U ? X : Y dan intuisi distributivitasnya.
  6. Template Literal TypesTipe string berstruktur untuk nama event dan path dengan template literal types.

Modul integrasi dengan dunia JavaScript: tsconfig mendalam, interop JS, berkas deklarasi, @types, dan migrasi.

  1. Pendalaman tsconfigKeluarga opsi strict, module dan target, serta noUncheckedIndexedAccess.
  2. Interop dengan JavaScriptallowJs, checkJs, dan pengetikan JSDoc untuk adopsi TypeScript secara bertahap.
  3. Berkas DeklarasiAnatomi berkas .d.ts, deklarasi ambient, dan kata kunci declare.
  4. DefinitelyTypedMemakai paket @types dan menilai kualitas pengetikan sebuah pustaka.
  5. Migrasi BertahapStrategi mengonversi proyek JavaScript nyata ke TypeScript dengan aman.
Modul dan Perkakas 5 pelajaran

Modul perkakas kerja profesional: ES modules, resolusi modul, build tools, linting, dan pengujian.

  1. ES Modules dalam TypeScriptSintaks import dan export, import khusus tipe, dan opsi verbatimModuleSyntax.
  2. Resolusi ModulMode bundler dan node16 serta pemakaian paths dan alias.
  3. Perkakas BuildPeran esbuild, Vite, dan tsx serta batas tanggung jawab tsc di dalamnya.
  4. LintingMemasang typescript-eslint dan memakai aturan type-aware yang menangkap bug nyata.
  5. PengujianMenulis pengujian dengan Vitest dan mengetik utilitas pengujian.

Modul asinkron: tipe Promise, generics asinkron, pengetikan fetch dan API, serta tipe penanganan error.

  1. Tipe PromisePromise<T>, apa yang benar-benar dikembalikan fungsi async, dan cara compiler mengetiknya.
  2. Generics AsinkronMengetik helper retry, map atas Promise, dan Promise.all secara generik.
  3. Mengetik fetch dan APIParsing respons HTTP dan memperlakukan masukan sebagai unknown di batas sistem.
  4. Tipe Penanganan Errorunknown pada blok catch dan pola bergaya Result untuk kegagalan.

Modul penerapan: React, Node.js, dan penerbitan paket dengan tipe.

  1. React dengan TypeScriptMengetik props, event handler, dan tipe hook pada komponen React.
  2. Node.js dengan TypeScriptPola sisi server dan pengetikan variabel lingkungan di Node.js.
  3. Menerbitkan TipeField types pada package.json dan pemaketan berkas deklarasi.
Pemrograman Level Tipe 4 pelajaran

Modul akrobat tipe yang terkarantina: infer, tipe rekursif, membangun utility types, dan kapan berhenti.

  1. InferMengekstrak tipe di dalam conditional types dengan kata kunci infer.
  2. Tipe RekursifTipe nilai JSON, readonly mendalam, dan partial mendalam dengan tipe rekursif.
  3. Membangun Utility Types dari NolMengimplementasikan ulang Partial, Readonly, dan kawan-kawannya untuk memahaminya.
  4. Mengetahui Kapan BerhentiKeterbacaan, waktu kompilasi, dan peringatan type-golf pada level tipe.
Pengerjaan Proyek 4 pelajaran

Modul penutup berupa proyek terpandu: pemilihan, arsitektur tipe, implementasi, dan gerbang CI.

  1. Pemilihan ProyekMemilih proyek penutup: pustaka atau aplikasi dengan konsumen nyata.
  2. Arsitektur TipeMemisahkan tipe API publik dari tipe internal dan memahami maksud versioning.
  3. ImplementasiMengerjakan proyek dalam strict mode, tanpa any, dengan tradeoff terdokumentasi.
  4. Pemeriksaan Tipe pada CIMenyiapkan gerbang lint, pengujian, dan typecheck pada setiap push.