Dizinli Erişim Türleri
T[K] söz dizimiyle özellik türlerini arayın.
Dizinli Erişim Türleri, 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.
Özellik Türlerini Arama
Dizin erişim türleri, bir tür konumunda köşeli parantez söz dizimini kullanarak bir özelliğin türünü aramanızı sağlar: Obj['prop']. Bu, değer okumaya benzer, ancak tür düzeyinde gerçekleşir.
Temel Dizin Erişimi
Bir özelliğin türünü çıkarmak için bir türü sabit bir key ile dizinleyin. User['name'], string verir.
interface User { id: number; name: string }
type NameType = User["name"] // string
const n: NameType = "Ada"
console.log(n)Türü Neden Doğrudan Yazmamalı
Dizin erişimi türleri uyumlu tutar. User.name türü string'den başka bir türe değişirse her User['name'] kullanımı otomatik olarak güncellenir; elle düzenleme gerekmez.
interface Product { price: { amount: number; currency: string } }
type Price = Product["price"] // { amount: number; currency: string }
const p: Price = { amount: 10, currency: "USD" }
console.log(p)Bir key Birleşimiyle Erişim
Değer türlerinin birleşimini elde etmek için bir key birleşimiyle dizinleyin. User['id' | 'name'], number | string üretir.
interface User { id: number; name: string }
type IdOrName = User["id" | "name"] // number | string
const v: IdOrName = 5
console.log(v)Tüm Değerler için Obj[keyof Obj]
Nesnedeki tüm değer türlerinin birleşimini, yani eksiksiz değer türü kümesini elde etmek için keyof Obj ile dizinleyin.
interface Config { host: string; port: number; secure: boolean }
type Values = Config[keyof Config] // string | number | boolean
const v: Values = true
console.log(v)[number] ile Dizi Öğesi Türü
Bir dizi türünün öğe türünü elde etmek için number ile dizinleyin. string[][number], string olur.
type Names = string[]
type Item = Names[number] // string
const x: Item = "Ada"
console.log(x)Demet Öğesinin Türü
Bir demete number ile dizin erişimi yapmak, tüm öğe türlerinin birleşimini verir. Bu, sabit bir listeden değer türü türetmek için kullanışlıdır.
type Pair = [string, number]
type Element = Pair[number] // string | number
const e: Element = 42
console.log(e)typeof ile Birleştirme
Bir değerin türünü typeof aracılığıyla indeksleyin. as const dizisi üzerinde [number] ile birlikte kullanıldığında, dizinin değişmez değerlerinden oluşan bir birleşim türetir.
const colors = ["red", "green", "blue"] as const
type Color = typeof colors[number] // "red" | "green" | "blue"
const c: Color = "green"
console.log(c)İç İçe İndekslenmiş Erişim
İç içe türlerin derinliklerine inmek için aramaları zincirleyin. Her köşeli parantez, yapı içinde bir düzey aşağı iner.
interface Data { user: { profile: { age: number } } }
type Age = Data["user"]["profile"]["age"] // number
const a: Age = 36
console.log(a)Jeneriklerde İndekslenmiş Erişim
K extends keyof T ile birlikte kullanılan T[K] deseni, tür güvenli getiricilerin temelini oluşturur: dönüş türü, aranan özelliğin türüyle tam olarak eşleşir.
function get<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key]
}
const port = get({ host: "x", port: 80 }, "port")
console.log(port) // 80, typed as numberUygulamalı Bir Türetim
İndekslenmiş erişim, türleri tekrarlamanızı önler: bir alan nesnesinden doğrudan bir işlev bağımsız değişkeni türü türetmenizi sağlar; türü yeniden yazmanız gerekmez.
interface Order { items: { sku: string; qty: number }[] }
type LineItem = Order["items"][number] // { sku: string; qty: number }
const li: LineItem = { sku: "A1", qty: 2 }
console.log(li)Kısa Bir Kontrol
İndekslenmiş erişim türleri hakkındaki anlayışınızı sınayın.
Özet
İndekslenmiş erişim türleri (Obj['prop']), bir özelliğin türünü arar ve kaynakla eşzamanlı kalır. Değer türlerinden oluşan bir birleşim için anahtarların birleşimiyle, tüm değerler için keyof Obj ile, dizi veya demet öğesi türleri için de number ile indeksleyin. İç içe aramalar için köşeli parantezleri zincirleyin; tür güvenli türetimler için typeof ve jeneriklerle (T[K]) birleştirin.
Sıkça Sorulan Sorular
“Dizinli Erişim Türleri” dersi ücretsiz mi?
Evet — “Dizinli Erişim Türleri” 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.
“Dizinli Erişim Türleri” dersinde ne öğreneceğim?
T[K] söz dizimiyle özellik türlerini arayı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.
“Dizinli Erişim Türleri” 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
- typeof Tür İşleci
- keyof Tür İşleci
- Dizinli Erişim Türleri
- typeof ve keyof'yu Birleştirme