/** * Creates a type based on T, but with all properties non-optional * and readonly. */ export type ReadOnlyRequired<T> = { +readonly [K in keyof T]-?: T[K] };