Geri

TypeScript’te Kendi Yardımcı Tiplerinizi Uygulamak

Kendi yardımcı tiplerinizi oluşturmak, yerleşik TypeScript yardımcılarından bağımsız, ihtiyacınıza özel tipler tanımlamanıza olanak tanır. Bu hem öğrenme süreci hem de özel tip çözümleri üretmek için önemlidir.

Örnek Tip: MyUtilTypes

type MyUtilTypes = {
    method: 'post' | 'get';
    url: string;
    body: object;
  }

Öncelikle, HTTP isteklerinde yaygın olarak kullanılan `method`, `url` ve `body` alanlarını içeren basit bir tip tanımlıyoruz.

MyPick: Bir Tipten Belirli Anahtarları Seçmek

// My Pick: Select specific keys from a type
  type MyPick<T extends object, K extends keyof T> = {
    [P in K]: T[P];
  };
  
  type testMyPick = MyPick<MyUtilTypes, 'method' | 'body'>;
  // Result: { method: 'post' | 'get'; body: object }

`MyPick`, verilen bir tipten yalnızca belirtilen anahtarları alarak yeni bir tip oluşturur. Bu sayede sadece ihtiyaç duyulan özellikleri elde edebilirsiniz.

MyExclude: Union Tipinden Anahtarları Hariç Tutmak

// My Exclude: Exclude keys from a union type
  type MyExclude<T, K extends T> = T extends K ? never : T;
  
  type testMyExclude = MyExclude<keyof MyUtilTypes, 'method'>;
  // Result: "url" | "body"

`MyExclude`, bir union tipten belirtilen anahtarları çıkarır. Genellikle diğer yardımcı tiplerde yardımcı olarak kullanılır.

MyPartial: Tüm Özellikleri Opsiyonel Yapmak

// My Partial: Make all properties optional (without -? it would keep required)
  type MyPartial<T extends object> = {
    [P in keyof T]?: T[P];
  };
  
  type testMyPartial = MyPartial<MyUtilTypes>;
  // Result: { method?: 'post' | 'get'; url?: string; body?: object }

`MyPartial`, tüm özellikleri opsiyonel hale getirir. Bu, kısmi güncellemeler veya bazı alanların zorunlu olmadığı durumlar için faydalıdır.

MyOmit: Belirli Anahtarları Bir Tipten Kaldırmak

// My Omit: Remove specific keys from type
  type MyOmit<T extends object, K extends keyof T> = {
    [P in MyExclude<keyof T, K>]: T[P];
  };
  
  type testMyOmit = MyOmit<MyUtilTypes, 'method' | 'body'>;
  // Result: { url: string }

`MyOmit`, belirtilen anahtarları dışlayarak yeni bir tip oluşturur. Genellikle `MyExclude` ile birlikte kullanılır ve orijinal tipten bazı özellikleri gizlemek istediğinizde tercih edilir.

Geri