export type Optional = T | null | undefined; export type StringKeys = Extract; export type PickIfMatch< O extends { [name: string]: any }, P extends string > = Pick>; export type IsEqualType = [S] extends [T] ? [T] extends [S] ? true : false : false; export type ConditionalPartial< O, IsPartial extends boolean > = IsPartial extends true ? Partial : O;