Geri

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