Geri

TypeScript Exclude Utility Type

`Exclude< T, U >`, `T` türünden `U` türündekileri çıkararak yeni bir birleşim türü oluşturur. Yani `T` içinden `U` türündekileri çıkarır.

Temel Örnek: Event Tiplerinden Bazılarını Çıkarma

type AllEvents = "click" | "hover" | "scroll" | "resize";
  
  // Remove 'scroll' and 'resize' events
  type UserEvents = Exclude<AllEvents, "scroll" | "resize">;
  
  const event1: UserEvents = "click"; // OK
  const event2: UserEvents = "hover"; // OK
  // const event3: UserEvents = "scroll"; // Error: Type '"scroll"' is not assignable

Tüm eventlerden `scroll` ve `resize` çıkarılarak, sadece kullanıcının etkileşimde bulunduğu eventler kaldı.

Nullable Türlerin Hariç Tutulması

type Primitive = string | number | boolean | null | undefined;
  
  // Exclude null and undefined
  type NonNullablePrimitive = Exclude<Primitive, null | undefined>;
  
  const value1: NonNullablePrimitive = "hello"; // OK
  const value2: NonNullablePrimitive = 42; // OK
  // const value3: NonNullablePrimitive = null; // Error
  // const value4: NonNullablePrimitive = undefined; // Error

Nullable türler (null, undefined) çıkarılarak, değerlerin her zaman tanımlı ve geçerli olması sağlandı.

Durum Yönetiminde Kullanımı

type Status = "success" | "error" | "pending";
  
  // Exclude 'pending' status to create 'final' statuses
  type FinalStatus = Exclude<Status, "pending">;
  
  function handleStatus(status: FinalStatus) {
    if (status === "success") {
      console.log("Operation succeeded");
    } else {
      console.log("Operation failed");
    }
  }
  
  handleStatus("success"); // OK
  handleStatus("error");   // OK
  // handleStatus("pending"); // Error

Pending durumunu çıkarıp sadece kesin sonuçları içeren tip tanımlandı. Böylece fonksiyonlarda durumlar kontrol altına alındı.

Neden Kullanılır?

`Exclude` tipi, birleşim tiplerden istenmeyen elemanları çıkarmak için kullanılır. Böylece daha kesin ve kontrollü tipler oluşturulur.

Geri