Record & Readonly
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 TReadonly<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 mapsReadonly<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!
Enjoying these tutorials?