Elemen Rest Tuple
Gunakan elemen rest di dalam jenis tuple.
Elemen Rest Tuple adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. 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 4 pelajaran total.
Tupel dengan Panjang Variabel
Tupel biasanya memiliki panjang tetap, tetapi elemen sisa memungkinkan satu posisi menampung sejumlah elemen. Ini memodelkan data yang sebagian tetap dan sebagian variabel.
Elemen Sisa di Akhir
Tuliskan [string, ...number[]] untuk menyatakan: satu string, lalu nol atau lebih angka. Slot pertama bersifat tetap; bagian sisanya dapat bertambah secara bebas.
type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4Bagian Tetap Wajib Ada
Elemen tetap di awal harus ada. Bagian sisa boleh kosong, tetapi slot tetap tidak boleh dilewati.
type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)Elemen Sisa di Awal
Elemen sisa juga dapat ditempatkan di awal, dengan elemen tetap setelahnya. Ini memodelkan bagian awal yang variabel dan diikuti bagian akhir yang tetap.
type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // trueElemen Sisa di Tengah
Elemen sisa dapat berada di tengah, di antara elemen tetap di awal dan di akhir. TypeScript menentukan posisi mana yang tetap pada setiap ujungnya.
type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start falseHanya Satu Elemen Sisa per Tupel
Sebuah tupel boleh memuat paling banyak satu elemen sisa. Dua elemen sisa akan membuat posisi elemen menjadi ambigu, sehingga tidak diizinkan.
// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)Mendestrukturisasi Tupel Sisa
Destrukturisasi sangat cocok dengan elemen sisa tupel. Pengikatan tetap mengambil slot tetap, sedangkan pengikatan sisa menangkap bagian variabel sebagai larik bertipe.
type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]Elemen Tupel Berlabel
Anda dapat memberi nama pada posisi tupel untuk dokumentasi. Label muncul dalam keterangan alat dan signatur, tetapi tidak mengubah nilai saat dijalankan.
type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10Label pada Elemen Sisa
Elemen sisa juga dapat diberi label, yang sangat membantu pada tupel parameter fungsi agar petunjuknya mudah dibaca.
type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))Tupel Sisa sebagai Daftar Parameter
Tupel dengan elemen sisa dapat menjelaskan daftar parameter fungsi, sehingga memungkinkan signatur tetap lalu variadik yang tepat melalui penyebaran.
type Params = [name: string, ...scores: number[]]
function report(...args: Params): string {
const [name, ...scores] = args
return name + ": " + scores.join(",")
}
console.log(report("Ada", 9, 8))Mengapa Tupel Sisa Penting
Tupel sisa mengungkapkan struktur yang tidak dapat dinyatakan oleh larik biasa: bagian pembuka wajib dengan isi variabel, isi variabel dengan bagian penutup wajib, atau keduanya. Tupel ini menjadi dasar pengetikan fungsi variadik.
type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))Pemeriksaan Singkat
Uji pemahaman Anda tentang elemen sisa tupel.
Rangkuman
Elemen sisa tupel (...T[]) memungkinkan satu posisi menampung sejumlah elemen, sementara elemen tetap di awal dan di akhir tetap wajib ada. Elemen sisa dapat berada di akhir, di awal, atau di tengah, tetapi setiap tupel hanya boleh memiliki satu elemen sisa. Destrukturisasi mengikuti struktur ini, label menambahkan petunjuk yang mudah dibaca, dan tupel sisa menjadi dasar pengetikan fungsi variadik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Elemen Rest Tuple” gratis?
Ya — teks lengkap “Elemen Rest Tuple” 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 4 pelajaran total.
Apa yang akan aku pelajari di “Elemen Rest Tuple”?
Gunakan elemen rest di dalam jenis tuple. 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 3 dari 4.
Berapa lama pelajaran “Elemen Rest Tuple” 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
- Parameter Rest dalam Fungsi
- Spread dalam Array dan Objek
- Elemen Rest Tuple
- Menentukan Jenis Fungsi Variadik