typeof Tür İşleci
typeof ile çalışma zamanındaki bir değerin türünü yakalayın.
typeof Tür İşleci, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. 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ğerlerden Türler
typeof tür işleci, çalışma zamanındaki bir değerden statik bir tür türetir. Bir değeri bir kez yazıp yapısını tür olarak yeniden kullanmanızı ve ikisini tamamen uyumlu tutmanızı sağlar.
Birbirinden Farklı İki typeof
İkisini karıştırmayın: JavaScript'teki typeof çalışma zamanında bir string döndürür; TypeScript'teki typeof bir tür konumunda görünür ve bir tür üretir. Anahtar sözcük aynıdır, ancak dünyaları farklıdır.
const n = 42
console.log(typeof n) // "number" — JS runtime
type T = typeof n // number — TS type positionBir Değişkenin Türünü Yakalama
Değerin çıkarılan türünü yakalamak için bir tür açıklamasında değerin önüne typeof yazın. Burada T, string olur.
const greeting = "hello"
type G = typeof greeting // string
const another: G = "world"
console.log(another)Bir Nesnenin Yapısını Yakalama
Bir sabit nesneye uygulandığında typeof, nesnenin çıkarılan yapısının tamamını verir; arayüzü elle yazmanız gerekmez.
const config = { host: "localhost", port: 8080 }
type Config = typeof config // { host: string; port: number }
const c: Config = { host: "127.0.0.1", port: 3000 }
console.log(c)Tür Çıkarımı Varsayılan Olarak Genişletir
Yardımcı bir belirleme yapılmadığında TypeScript sabitleri genişletir: port: 8080, 8080 sabiti yerine number olur. Bu çoğu zaman uygundur, ancak bazen tam değeri korumak isteyebilirsiniz.
const settings = { mode: "dark" }
type S = typeof settings // { mode: string }
const x: S = { mode: "anything" }
console.log(x)as const ile typeof
Bir değeri en dar sabit türüne dondurmak için as const ekleyin. Artık typeof tam sabitleri yakalar ve her şeyi readonly olarak işaretler.
const settings = { mode: "dark" } as const
type S = typeof settings // { readonly mode: "dark" }
const x: S = { mode: "dark" }
console.log(x)Dizilerden Sabit Türleri
as const kullanıldığında, bir dizi üzerindeki typeof sabit türlerden oluşan salt okunur bir demet verir; bu, değerlerin birleşim türlerini türetmek için temel oluşturur.
const roles = ["admin", "editor", "viewer"] as const
type Roles = typeof roles // readonly ["admin", "editor", "viewer"]
console.log(roles[0])Değerlerin Birleşimini Türetme
Sabitlerden oluşan bir diziyi, değerlerinin birleşim türüne dönüştürmek için typeof işleciyi [number] ile yapılan dizin erişimiyle birleştirin.
const roles = ["admin", "editor", "viewer"] as const
type Role = typeof roles[number] // "admin" | "editor" | "viewer"
const r: Role = "editor"
console.log(r)İşlevlerde typeof
Bir işlevin türünü de yakalayabilirsiniz. Bu, sarmalayıcıları türlendirmek veya bir imzayı başka yerde yeniden kullanmak için kullanışlıdır.
function add(a: number, b: number) { return a + b }
type AddFn = typeof add // (a: number, b: number) => number
const myAdd: AddFn = (x, y) => x + y
console.log(myAdd(2, 3))Türleri Uyumlu Tutma
En büyük avantaj şudur: yapılandırmayı veya sabitleri bir kez değer olarak tanımlayıp türleri typeof ile türetirsiniz. Değeri değiştirdiğinizde tür de otomatik olarak güncellenir; yineleme yapılmaz.
const defaults = { retries: 3, timeout: 1000 }
type Defaults = typeof defaults
function apply(opts: Defaults) { return opts.retries }
console.log(apply(defaults))Yalnızca Tanımlayıcılarla Çalışır
typeof tür işleci, rastgele bir ifade yerine bir tanımlayıcı veya özellik yolu alır. typeof (a + b) kullanımına izin verilmez.
const obj = { user: { name: "Ada" } }
type Name = typeof obj.user.name // string
const n: Name = "Leo"
console.log(n)Hızlı Kontrol
typeof tür işlecini ne kadar anladığınızı sınayın.
Özet
typeof tür işleci, bir tür konumunda kullanıldığında bir değerden (değişken, nesne, dizi veya işlev) tür türetir. Varsayılan olarak sabitler genişletilir; tam sabit türlerini salt okunur olarak yakalamak için as const ekleyin. Dizin erişimiyle (typeof arr[number]) birleştirildiğinde değer birleşimleri üretir. Türleri değerlerden türetmek tek bir doğruluk kaynağı sağlar ve yapıların yinelenmesini önler.
Sıkça Sorulan Sorular
“typeof Tür İşleci” dersi ücretsiz mi?
Evet — “typeof Tür İşleci” 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.
“typeof Tür İşleci” dersinde ne öğreneceğim?
typeof ile çalışma zamanındaki bir değerin türünü yakalayı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 1. dersidir.
“typeof Tür İşleci” 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