При отображении типа, как сделать ключи не только для чтения? - PullRequest
0 голосов
/ 17 января 2019

Вопрос так же прост, как следует из заголовка: как сделать ключи доступными для записи (а не только для чтения) при отображении из типа Readonly?

F.E.

type Foo = Readonly<{
  foo: number
  bar: number
}>

type Bar = /* how to copy the Foo type, but make it writable? */

1 Ответ

0 голосов
/ 17 января 2019

Используйте -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 

?

...