ReadonlyKeys
ReadonlyKeys
@example
type Props = { readonly foo: string; bar: number };
// Expect: "foo"
type Keys = ReadonlyKeys<Props>;
type ReadonlyKeys<T extends object> = [P in keyof T]-?: IfEquals<[Q in P]: T[P], -readonly [Q in P]: T[P], never, P>[keyof T];