type Readonly‹T› = { readonly [P in keyof T]: T[P]; } type Partial‹T› = { [P in keyof T]?: T[P]; }