/** * A recursive implementation of the Partial type. */ export type DeepPartial = { [K in keyof T]?: DeepPartial }; /** * Creates a type based on T, but with all properties non-optional * and readonly. */ export type ReadOnlyRequired = { +readonly [K in keyof T]-?: T[K] }; // tslint:disable:ban-types /** * A type representing the type rather than instance of a class. */ export type Type = { new (): T; } & Function; /** * A type describing the shape of a paginated list response */ export type PaginatedList = { items: T[]; totalItems: number; }; /** * An entity ID */ export type ID = string | number;