OptionalKeys
OptionalKeys
@example
type Props = { req: number; reqUndef: number | undefined; opt?: string; optUndef?: number | undefined; };
// Expect: "opt" | "optUndef"
type Keys = OptionalKeys<Props>;
type OptionalKeys<T> = [K in keyof T]-?: {} extends Pick<T, K> ? K : never[keyof T];