Web Analytics

Record & Readonly

Intermediate~18 min

Record creates object types with specific keys and values, while Readonly makes all properties immutable.

Record & Readonly Types

Output
Click Run to execute your code
Utility Types:
  • Record<K, T> - Create object with keys K and values T
  • Readonly<T> - Make all properties read-only

When to Use

Utility Use Case Example
Record Maps, dictionaries Record<string, number>
Readonly Immutable config Readonly<Config>

Common Mistakes

1. Readonly is Shallow

interface User {
    settings: { theme: string };
}

type ReadonlyUser = Readonly;

let user: ReadonlyUser = { settings: { theme: "dark" } };
// user.settings = {};  // โœ— Error - readonly
user.settings.theme = "light";  // โœ“ OK - nested not readonly!
Best Practice: Use Record for maps/dictionaries, Readonly for configuration objects.

Summary

  • Record<K, T> creates typed object maps
  • Readonly<T> makes properties immutable
  • Perfect for dictionaries and config
  • Readonly is shallow - doesn't affect nested objects

What's Next?

Congratulations! Module 5 complete. Next: Type Manipulation!