TypeScript Readonly and Immutability
Learn how readonly helps prevent accidental changes and write safer, predictable TypeScript code.
David Miller
January 6, 2026
0.6k16
Readonly prevents modification after creation.
## Readonly property
```ts
interface User {
readonly id: number;
name: string;
}
```
## Readonly array
```ts
let nums: readonly number[] = [1, 2, 3];
// nums.push(4); ❌
```
## Readonly utility
```ts
type User = { id: number; name: string };
type ReadUser = Readonly<User>;
```
## Why important?
- Prevents bugs
- Makes intent clear
## Graph
```mermaid
flowchart LR
A[Mutable] --> B[Can change]
C[Readonly] --> D[Safe state]
```
## Remember
- Use readonly for safety
- Especially for configs and state
#TypeScript#Beginner#Immutability