UNPKG

mobx-keystone-mindreframer

Version:

A MobX powered state management solution based on data trees with first class support for Typescript, snapshots, patches and much more

46 lines (45 loc) 1.14 kB
import type { IdentityType } from "./schemas"; /** * @ignore * Extract enum values out of a enum object. */ export declare type EnumValues<E> = E extends Record<infer _K, // eslint-disable-line @typescript-eslint/no-unused-vars infer V> ? V : never; /** * An enum type, based on a Typescript alike enum object. * Syntactic sugar for `types.or(...enum_values.map(types.literal))` * * Example: * ```ts * enum Color { * Red = "red", * Green = "green" * } * * const colorType = types.enum(Color) * ``` * * @template E Enum type. * @param enumObject * @returns */ export declare function typesEnum<E extends object>(enumObject: E): IdentityType<EnumValues<E>>; /** * An enum type, based on a Typescript alike enum object. * Syntactic sugar for `types.or(...enum_values.map(types.literal))` * * Example: * ```ts * enum Color { * Red = "red", * Green = "green" * } * * const colorType = types.enum(Color) * ``` * * @template E Enum type. * @param enumObject * @returns */ export declare function typesEnum<E = never>(enumObject: object): IdentityType<E>;