/** * 取出所有可选的key * @example * 输入: * type Example = { foo?: string; bar: number } * type example = OptionalKeys * 输出; * type example = "foo" */ export type OptionalKeys = { [K in keyof T]-?: {} extends Pick ? K : never; }[keyof T];