0Pricing
TypeScript Academy · Ders

Demet Rest Ögeleri

Demet türlerinin içinde rest ögelerini kullanın.

Demet Rest Ögeleri, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Değişken Uzunluklu Demetler

Demetler normalde sabit uzunluktadır, ancak bir kalan öğe tek bir konumun istenen sayıda öğeyi almasını sağlar. Bu, kısmen sabit, kısmen değişken verileri modeller.

Sondaki Kalan Öğe

[string, ...number[]] yazarak bir string'in ardından sıfır veya daha fazla sayı gelmesini ifade edebilirsiniz. İlk yuva sabittir; kalan bölüm serbestçe büyür.

type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4

Sabit Bölüm Gereklidir

Baştaki sabit öğeler mevcut olmalıdır. Kalan bölüm boş olabilir, ancak sabit yuvalar atlanamaz.

type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)

Baştaki Kalan Öğe

Bir kalan öğe ilk sırada da bulunabilir ve ardından sabit öğeler gelebilir. Bu, değişken bir başlığın ardından sabit bir kuyruğun gelmesini modeller.

type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // true

Ortadaki Kalan Öğe

Kalan bölüm, baştaki ve sondaki sabit öğelerin arasında ortada bulunabilir. TypeScript, her iki uçta hangi konumların sabit olduğunu belirler.

type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start false

Her Demette Yalnızca Bir Kalan Öğe

Bir demet en fazla bir kalan öğe içerebilir. İki kalan öğe, öğe konumlarını belirsiz hâle getireceğinden buna izin verilmez.

// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)

Kalan İçeren Demetin Yapıbozumu

Yapıbozumu, demetlerdeki kalan öğelerle kusursuz biçimde uyumludur. Sabit bağlamalar sabit yuvaları alır; kalan bağlama ise değişken bölümü türü belirlenmiş bir dizi olarak yakalar.

type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]

Etiketli Demet Öğeleri

Belgeleme amacıyla demet konumlarını adlandırabilirsiniz. Etiketler araç ipuçlarında ve imzalarda görünür, ancak çalışma zamanındaki değerleri değiştirmez.

type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10

Kalan Öğelerde Etiketler

Kalan öğeler de etiketlenebilir; bu, özellikle okunabilir ipuçları sağlamak için işlev parametresi demetlerinde yararlıdır.

type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))

Parametre Listeleri Olarak Kalan Demetler

Kalan öğe içeren bir demet, bir işlevin parametre listesini açıklayabilir ve yayma yoluyla önce sabit, ardından değişken sayıda öğe alan kesin imzalar oluşturmayı sağlar.

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))

Kalan Demetler Neden Önemlidir

Kalan demetler, sıradan dizilerin ifade edemediği yapıları ifade eder: zorunlu bir başlık ve ardından değişken bir gövde, değişken bir gövde ve ardından zorunlu bir alt bilgi ya da her ikisi. Değişken sayıda bağımsız değişken alan işlevleri türlendirmenin temelini oluştururlar.

type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))

Hızlı Kontrol

Demetlerdeki kalan öğeleri ne kadar anladığınızı sınayın.

Özet

Demetlerdeki kalan öğe (...T[]), sabit baştaki ve sondaki öğeler zorunlu kalırken tek bir konumun istenen sayıda öğeyi almasını sağlar. Kalan bölüm sonda, başta veya ortada bulunabilir, ancak her demet için yalnızca bir kalan öğeye izin verilir. Yapıbozumu bu yapılarla uyumludur, etiketler okunabilir ipuçları ekler ve kalan demetler değişken sayıda bağımsız değişken alan işlevleri türlendirmenin temelidir.

Sıkça Sorulan Sorular

“Demet Rest Ögeleri” dersi ücretsiz mi?

Evet — “Demet Rest Ögeleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Demet Rest Ögeleri” dersinde ne öğreneceğim?

Demet türlerinin içinde rest ögelerini kullanın. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Demet Rest Ögeleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İşlevlerde Rest Parametreleri
  2. Dizilerde ve Nesnelerde Yayma
  3. Demet Rest Ögeleri
  4. Değişken Sayıda Bağımsız Değişken Alan İşlevlerin Türünü Belirleme
← TypeScript Academy Sayfasına Dön