Geri

TypeScript Omit Utility Type

`Omit< T, K >`, bir tipten (`T`) belirli alanları (`K`) çıkararak yeni bir tip oluşturur. Bu, özellikle hassas veya gereksiz alanları dışarıda bırakmak için kullanılır.

Temel Örnek: Hassas Bilgilerin Kaldırılması

type User = {
    id: number;
    name: string;
    password: string;
    email: string;
  };
  
  // We want to create a type without sensitive 'password' field
  type PublicUser = Omit<User, 'password'>;
  
  const publicUser: PublicUser = {
    id: 1,
    name: "Alice",
    email: "alice@example.com"
  };
  
  // password field is not allowed here
  // publicUser.password = "123"; // Error

`User` tipinden `password` alanını çıkararak, dışarıya sadece güvenli alanlar içeren `PublicUser` oluşturduk. Böylece `password` yanlışlıkla kullanılmaz.

Birden Fazla Alanı Kaldırmak

interface Product {
    id: number;
    name: string;
    description: string;
    price: number;
    internalCode: string;
  }
  
  // API response should not expose internalCode and description
  type PublicProduct = Omit<Product, 'internalCode' | 'description'>;
  
  function showProduct(product: PublicProduct) {
    console.log(product.name, product.price);
  }
  
  const product: PublicProduct = {
    id: 101,
    name: "Laptop",
    price: 1500,
  };
  
  showProduct(product);

`Product` tipinden `internalCode` ve `description` alanları çıkarılarak, API yanıtlarında istemediğimiz alanları gizleyebiliriz.

Gerçek Hayattan Ayar (Settings) Örneği

type FullSettings = {
    darkMode: boolean;
    fontSize: number;
    language: string;
    autoSave: boolean;
  };
  
  type SettingsWithoutAutoSave = Omit<FullSettings, 'autoSave'>;
  
  const settings: SettingsWithoutAutoSave = {
    darkMode: true,
    fontSize: 14,
    language: "en"
  };
  
  console.log(settings);
  // Output: { darkMode: true, fontSize: 14, language: "en" }

`FullSettings` tipinden `autoSave` alanını çıkararak, sadece kullanıcının değiştirebileceği ayarları tutan tip oluşturduk.

Neden Kullanılır?

`Omit`, veri gizliliği, API güvenliği veya sadece ihtiyaç duyulan alanlarla çalışma gibi durumlarda kullanılır. Kodun güvenliği ve okunabilirliği artar.

Geri