export type FnType = () => ReturnValue; export type MakeReadonlyValuesExcept = Readonly> & Pick; export type MakeReadonlyValues = Readonly> & Omit; export type ArrayType = (readonly T[]) | T[]; export type KeysOfType = { [K in keyof T]: T[K] extends U ? K : never; }[keyof T]; export type PartialExcept = Partial> & Pick;