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