Typescript Foundations / Utility Types

Record

🗂️ Record<K, T>

Record<K, T> creates an object type with specific keys and a defined value type.

It is useful when you want to ensure that an object follows a consistent structure.

🔹 Example

type Role = "admin" | "user" | "guest";

const permissions: Record<Role, string> = {
  admin: "Full access",
  user: "Limited access",
  guest: "Read-only"
};

Here, Record<Role, string> means:

  • Every key must be a Role

  • Every value must be a string

So this would cause an error:

const permissions: Record<Role, string> = {
  admin: "Full access",
  user: "Limited access"
}; // ❌ guest is missing

💡 Common Use

Record is useful for lookup objects, configuration maps, permissions, and dictionaries where you want to control the keys and values.

Remember: Record<K, T> → Creates an object type with keys K and values T.