Readonly<T> làm tất cả properties của T thành readonly (shallow). ReadonlyArray<T> là array không thể modify (push, pop, sort không available).
Dùng với as const, Redux state, functional programming.
typescript
const nums: ReadonlyArray<number> = [1, 2, 3];
nums.push(4); // Error! Property 'push' does not exist
nums[0] = 99; // Error! Index signature is readonly
const state: Readonly<{ count: number }> = { count: 0 };
state.count = 1; // Error!Deep readonly cần custom type: DeepReadonly<T> với recursive mapped type.
Readonly<T> makes all properties of T readonly (shallow). ReadonlyArray<T> is an array that cannot be modified (push, pop, sort are unavailable).
Used with as const, Redux state, and functional programming.
typescript
const nums: ReadonlyArray<number> = [1, 2, 3];
nums.push(4); // Error! Property 'push' does not exist
nums[0] = 99; // Error! Index signature is readonly
const state: Readonly<{ count: number }> = { count: 0 };
state.count = 1; // Error!Deep readonly requires a custom type: DeepReadonly<T> using a recursive mapped type.