Используйте -readonly
для удаления только для чтения при отображении, например.
export type Foo = Readonly<{
foo: number
bar: number
}>;
export type Writeable<T> = {
-readonly [P in keyof T]: T[P];
};
export type Bar = Writeable<Foo>;
let x:Bar = {
foo: 123,
bar: 456
}
x.bar = 123; // OK
?