Mapped type ve conditional type nedir? Örnek verin.
Cevap
Mapped type, mevcut bir tipin anahtarları üzerinde dolaşarak yeni bir tip üretir. Conditional type ise T extends U ? X : Y biçiminde tip düzeyinde koşul kurar; infer ile tip çıkarımı yapılabilir.
// Mapped: tüm alanları nullable yap
type Nullable<T> = { [K in keyof T]: T[K] | null };
// Anahtarları yeniden adlandırma (key remapping)
type Getterlar<T> = {
[K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};
// Getterlar<{ ad: string }> → { getAd: () => string }
// Conditional + infer
type DiziElemani<T> = T extends (infer E)[] ? E : never;
type X = DiziElemani<string[]>; // string
type PromiseSonucu<T> = T extends Promise<infer R> ? R : T;Yerleşik Partial, ReturnType, Awaited gibi utility type'lar bu iki mekanizmayla yazılmıştır.
İlgili TypeScript soruları
- any, unknown ve never tipleri arasındaki fark nedir?
- Generic (jenerik) tipler nedir? Bir örnekle açıklayın.
- interface ile type alias arasındaki farklar nelerdir?
- TypeScript nedir, JavaScript'e göre avantajları nelerdir?
- tsconfig.json'daki strict modu neleri açar, neden önemlidir?
- TypeScript'te enum ile union literal tip arasında hangisini tercih edersiniz?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.