0Pricing
TypeScript Academy · Pelajaran

Menyusun fungsi dan argumen dengan aman

Susun fungsi sambil mempertahankan tuple argumen dan tipe pengembalian; tulis pembantu pipe/compose yang tetap aman secara tipe.

Menyusun fungsi dan argumen dengan aman adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 3 pelajaran total.

Pengantar

Tujuan: Rangkai fungsi tanpa kehilangan informasi argumen. Tuple variadik memungkinkan Anda mempertahankan tuple argumen lengkap melalui pembantu pipe atau compose.

  • Pertahankan aritas dan nama
  • Pertahankan penyimpulan di seluruh langkah
  • Tanpa any, tanpa casts

Komposisi Dasar

compose: Fungsi pertama menerima semua argumen (...args: A), sedangkan fungsi kedua menggunakan hasilnya; aritas dan tipe tetap terjaga.

function compose<A extends any[], B, C>(g: (b: B) => C, f: (...args: A) => B) {
  return (...args: A): C => g(f(...args))
}

function toLen(a: string, n: number) { return `${a}${n}`.length }
function isEven(x: number) { return x % 2 === 0 }

const c1 = compose(isEven, toLen)
const ok = c1("id", 99)   // boolean

Pembantu Pipe

pipe menerapkan gagasan yang sama dalam urutan terbalik; alur penyimpulannya lebih intuitif.

function pipe<A extends any[], B, C>(f: (...args: A) => B, g: (b: B) => C) {
  return (...args: A): C => g(f(...args))
}

const p1 = pipe(toLen, isEven)
const ok2 = p1("xx", 7) // boolean

Komposisi 3+

Untuk 3+ fungsi: pola yang sama diulangi; tuple A dipertahankan, dan nilai kembalian perantara dirangkai.

function compose3<A extends any[], B, C, D>(h: (c: C) => D, g: (b: B) => C, f: (...args: A) => B) {
  return (...args: A): D => h(g(f(...args)))
}

function toUpper(s: string) { return s.toUpperCase() }

const c3 = compose3(toUpper, (x: number) => x.toString(), toLen)
const val = c3("a", 5) // "2" → then upper → "2"

Mengikat Kepala

bindHead: Awali dengan argumen lengkap dan hasilkan fungsi tanpa argumen; hanya untuk keperluan demonstrasi (sebenarnya, fungsi ini dapat dibuat lebih fleksibel dengan Parameters).

function bindHead<A extends any[], B>(fn: (...args: A) => B, ...head: A) {
  return (...rest: []): B => fn(...head)
}

const bh = bindHead(toLen, "x", 42)
const r = bh() // number

Kiat

Kiat:

Hindari any dalam pembantu; any memutus rantai penyimpulan.

Jika perlu, nyatakan tipe kembalian secara eksplisit; ini meningkatkan pengalaman pengembang.

Untuk komposisi bertahap, pilih pembantu kecil daripada pembantu yang terlalu umum.

Pemeriksaan Tanda Tangan Komposisi

Pemeriksaan singkat: Tanda tangan compose mana yang mempertahankan tuple argumen sumber?

Ringkasan

Ringkasan: Anda menulis compose/pipe sambil mempertahankan argumen dengan tuple variadik; alur terbentuk tanpa kehilangan aritas dan tipe.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menyusun fungsi dan argumen dengan aman” gratis?

Ya — teks lengkap “Menyusun fungsi dan argumen dengan aman” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Menyusun fungsi dan argumen dengan aman”?

Susun fungsi sambil mempertahankan tuple argumen dan tipe pengembalian; tulis pembantu pipe/compose yang tetap aman secara tipe. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.

Berapa lama pelajaran “Menyusun fungsi dan argumen dengan aman” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Elemen rest tuple, tipe curry
  2. Menyusun fungsi dan argumen dengan aman
  3. Builder bertipe kuat
← Kembali ke TypeScript Academy