TypeScript Required Utility Type
`Required< T >`, verilen tipteki tüm opsiyonel (optional) alanları zorunlu hale getirir. Bu sayede o tipteki nesneler tüm alanları mutlaka içermek zorundadır.
Temel Kullanım
type User = {
id?: number;
name?: string;
};
const user1: User = {};
const user2: Required<User> = {
id: 1,
name: "Alice"
};
// Error: Property 'id' is missing in type '{}' but required in type 'Required<User>'.
`User` tipinde opsiyonel alanlar varken, `Required< User >` ile tüm alanlar zorunlu olur. Bu yüzden boş obje ataması hata verir.
Fonksiyon Parametresi Olarak Kullanımı
interface Config {
apiUrl?: string;
timeout?: number;
}
function setup(config: Required<Config>) {
console.log("API URL:", config.apiUrl);
console.log("Timeout:", config.timeout);
}
setup({
apiUrl: "https://api.example.com",
timeout: 5000
});
`setup` fonksiyonu, `Config` tipindeki opsiyonel alanların hepsinin verildiğinden emin olmak için `Required` ile tanımlanmıştır.
Tip Dönüşümü Örneği
type PartialUser = {
id?: number;
name?: string;
};
type CompleteUser = Required<PartialUser>;
const user: CompleteUser = {
id: 123,
name: "Bob"
};
console.log(user);
// Output: { id: 123, name: "Bob" }
`PartialUser` tipinden `Required< PartialUser >` ile tüm alanlar zorunlu hale getirilir ve eksik alan bırakmak hata verir.
Ne Zaman Kullanılır?
`Required`, özellikle veri alırken tüm alanların dolu olmasının zorunlu olduğu durumlarda kullanılır. API yanıtlarının doğruluğunu sağlamak gibi senaryolarda faydalıdır.
Geri