UNPKG

mobx-keystone

Version:

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

22 lines (19 loc) 636 B
import { resolveTypeChecker } from "./resolveTypeChecker" import type { AnyType, TypeToData } from "./schemas" import type { TypeCheckError } from "./TypeCheckError" /** * Checks if a value conforms to a given type. * * @template T Type. * @param type Type to check for. * @param value Value to check. * @returns A TypeError if the check fails or null if no error. */ export function typeCheck<T extends AnyType>(type: T, value: TypeToData<T>): TypeCheckError | null { const typeChecker = resolveTypeChecker(type) if (typeChecker.unchecked) { return null } else { return typeChecker.check(value, [], value) } }