0Pricing
Frontend Academy · Ders

Yardımcı Türler: Partial Required Pick Omit

Kopya oluşturmadan farklı türler elde etmek için mevcut türleri yerleşik yardımcı türlerle dönüştürün.

Yardımcı Türler: Partial Required Pick Omit, CoddyKit'te ücretsiz bir Frontend Academy dersidir. Bu, 4 dersinin 2. 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, Frontend Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Frontend Academy kursu toplamda 4 dersten oluşur.

Yerleşik Yardımcı Türler

TypeScript, diğer türleri dönüştüren bir dizi jenerik yardımcı türle birlikte gelir. Bunlar, benzer arabirim çeşitlemelerini elle yeniden yazma gereğini ortadan kaldırır.

Partial<T>

T'nin tüm özelliklerini isteğe bağlı hâle getirir. Tüm alanların sağlanmasının gerekmediği güncelleme/yama yükleri için idealdir.

interface User { name: string; email: string; age: number; }

function updateUser(id: string, changes: Partial<User>) {
  // changes.name is string | undefined
  // changes.email is string | undefined
}

updateUser('1', { name: 'Bob' }); // only update name

Required<T>

Partial'ın tersidir; tüm özellikleri zorunlu hâle getirir ve isteğe bağlı (?) değiştiricileri kaldırır.

interface Config {
  host?: string;
  port?: number;
  debug?: boolean;
}

function validate(config: Required<Config>) {
  // All three are now required
  console.log(config.host, config.port, config.debug);
}

Pick<T, K>

T içinden yalnızca belirtilen özelliklere sahip bir tür oluşturur. Büyük nesneleri yalnızca ihtiyacınız olan alanları içerecek şekilde küçültmek için kullanışlıdır.

interface User { id: number; name: string; email: string; password: string; }

type PublicUser = Pick<User, 'id' | 'name' | 'email'>;
// { id: number; name: string; email: string }
// password is excluded — safe to send to client

Omit<T, K>

Belirtilen özellikleri kaldırılmış bir tür oluşturur. Pick'in tersidir.

type UserWithoutPassword = Omit<User, 'password'>;
// { id: number; name: string; email: string }

type CreateUserDto = Omit<User, 'id'>; // new users don't have an id yet

Readonly<T>

Tüm özellikleri salt okunur hâle getirir ve yeniden atamayı önler. Yapılandırma nesneleri ve değişmez veriler için kullanışlıdır.

const config: Readonly<Config> = {
  host: 'localhost',
  port: 3000,
};
config.port = 8080; // Error: cannot assign to 'port' because it is read-only

Record<K, V>

K türünde anahtarlara ve V türünde değerlere sahip bir nesne türü oluşturur. Anahtarlar bilinen bir birleşim olduğunda ham dizin imzasından daha temizdir.

type Role = 'admin' | 'editor' | 'viewer';
type Permissions = Record<Role, { canEdit: boolean; canDelete: boolean }>;

const perms: Permissions = {
  admin:  { canEdit: true,  canDelete: true  },
  editor: { canEdit: true,  canDelete: false },
  viewer: { canEdit: false, canDelete: false },
};

ReturnType<T> ve Parameters<T>

Bir işlev türünün dönüş türünü ve parametre türlerini çıkarır. Bir türü içe aktaramadığınız, ancak bir işlevin imzasıyla eşleşmeniz gerektiği durumlarda kullanışlıdır.

function fetchUser(id: number) {
  return { id, name: 'Alice' };
}

type UserResult = ReturnType<typeof fetchUser>; // { id: number; name: string }
type FetchParams = Parameters<typeof fetchUser>; // [id: number]

Awaited<T>

Bir Promise türünü, çözümlenen değer türüne açar. Eşzamansız işlevlerle çalışırken kullanışlıdır.

type UserResponse = Awaited<ReturnType<typeof fetchUser>>;
// Resolves both the function return and the Promise

async function load() { return { user: { name: 'Alice' } }; }
type Loaded = Awaited<ReturnType<typeof load>>; // { user: { name: string } }

Extract<T, U> ve Exclude<T, U>

Extract<T, U>, T içindeki U'ya atanabilen türleri korur. Exclude<T, U> ise bunları kaldırır.

type A = 'a' | 'b' | 'c' | 'd';
type BC = Extract<A, 'b' | 'c' | 'e'>; // 'b' | 'c'
type AD = Exclude<A, 'b' | 'c'>;       // 'a' | 'd'

// NonNullable removes null and undefined:
type T = string | null | undefined;
type NonNull = NonNullable<T>; // string

Yardımcı Türleri Birleştirme

Kesin türler oluşturmak için yardımcı türler birleştirilebilir.

type UpdatePayload<T> = Partial<Omit<T, 'id' | 'createdAt'>>;
// Use for PATCH endpoints — omit immutable fields, make rest optional

function patch(id: string, data: UpdatePayload<User>) {
  // data can have any subset of mutable user fields
}

Kısa Kontrol

Bir arabirimden belirtilen anahtarları hangi yardımcı tür kaldırır?

Özet: Yardımcı Türler

Partial, tüm alanları isteğe bağlı hâle getirir. Required, isteğe bağlı değiştiricileri kaldırır. Pick, seçilen anahtarları korur. Omit, seçilen anahtarları kaldırır. Readonly, değişikliği önler. Record, birleşim anahtarlarını değer türleriyle eşler. ReturnType ve Parameters, işlev türlerini çıkarır. Kesin DTO türleri için yardımcı türleri birleştiriniz.

Sıkça Sorulan Sorular

“Yardımcı Türler: Partial Required Pick Omit” dersi ücretsiz mi?

Evet — “Yardımcı Türler: Partial Required Pick Omit” 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 Frontend Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Frontend Academy kursu toplamda 4 dersten oluşur.

“Yardımcı Türler: Partial Required Pick Omit” dersinde ne öğreneceğim?

Kopya oluşturmadan farklı türler elde etmek için mevcut türleri yerleşik yardımcı türlerle dönüştürün. Frontend 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.

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

Önceden deneyim gerekmez. CoddyKit'te Frontend 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 2. dersidir.

“Yardımcı Türler: Partial Required Pick Omit” 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 Frontend Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Frontend 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. Generic'ler: T extends ve Kısıtlamalar
  2. Yardımcı Türler: Partial Required Pick Omit
  3. Eşlenmiş Türler ve Koşullu Türler
  4. Daraltma: typeof instanceof Ayırt Edilmiş Birleşimler
← Frontend Academy Sayfasına Dön