Geri

TypeScript Record Utility Type

`Record< K, T >` utility type, belirli bir anahtar kümesi (`K`) ile aynı tipte (`T`) değerler eşlemek için kullanılır. Tip güvenliğine katkı sağlar ve sık kullanılan veri yapılarını kolaylaştırır.

Temel Record Kullanımı

type User = {
    id: number;
    name: string;
  };
  
  type UserMap = Record<string, User>;
  
  const users: UserMap = {
    "u1": { id: 1, name: "Alice" },
    "u2": { id: 2, name: "Bob" }
  };
  
  console.log(users.u1.name);
  // Output: Alice

`Record< string, User >` gibi kullanımlarda, string anahtarlar ile `User` tipinde değerler eşleştirilir. Özellikle objeye benzer yapılarda tercih edilir.

Enum Tarzı Durumlar İçin Record

type Status = "pending" | "approved" | "rejected";
  
  type StatusMessages = Record<Status, string>;
  
  const messages: StatusMessages = {
    pending: "Your request is being reviewed.",
    approved: "Your request has been approved!",
    rejected: "Your request was rejected."
  };
  
  console.log(messages.approved);
  // Output: Your request has been approved!

`Record` ile sabit anahtar değer çiftleri oluşturmak çok pratiktir. Bu örnekte her durum için özel mesaj tanımlanmıştır.

Gerçek Hayat Örneği: Haftalık Takvim

type Day = "mon" | "tue" | "wed";
  
  type Schedule = Record<Day, string[]>;
  
  const mySchedule: Schedule = {
    mon: ["Gym", "Meeting"],
    tue: ["Coding"],
    wed: ["Review", "Team Lunch"]
  };
  
  console.log(mySchedule["tue"]);
  // Output: ["Coding"]

Bir uygulamada kullanıcı takvimi gibi yapılar oluştururken `Record` kullanmak, hem okunabilirlik hem de tip güvenliği açısından avantajlıdır.

Ne Zaman Kullanılır?

`Record` utility type; lookup tablosu, sabit eşleme yapıları, çeviri dosyaları, durum yönetimi gibi birçok senaryoda hayat kurtarıcıdır.

Geri