export type ObjectType = object & { length?: never; }; export type PickKeys = { [Key in keyof Type]-?: Type[Key] extends ValueType ? Key : never; }[keyof Type]; export type OmitKeys = { [Key in keyof Type]-?: Type[Key] extends ValueType ? never : Key; }[keyof Type]; export type Nullable = { [Key in keyof Type]: Type[Key] | null; }; export type NullableKeys = Omit & { [Key in Keys]: Type[Key] | null; }; export type PartialKeys = Omit & { [Key in Keys]?: Type[Key]; }; /** * Returns the object keys of `Type` that are not `never`. */ export type NonNeverKeys = { [Key in keyof Type]: Type[Key] extends never ? never : Key; }[keyof Type]; /** * Returns the object wihtout the keys of `Type` that are `never`. */ export type OmitNever = Pick>;