不可变类型
Code
ts
interface Immutable {
a: number;
b: string;
}
const im: Immutable = {
a: 1,
b: '2',
}
解析
ts
type DeepReadonly<T> = {
readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P];
}
interface Immutable {
a: number;
b: string;
c: {
d: boolean;
}
}
// 官方, 只是浅
const im: Readonly<Immutable> = {
a: 1,
b: '2',
c: {
d: true
}
}
const im2: DeepReadonly<Immutable> = {
a: 1,
b: '2',
c: {
d: true
}
}