export enum ObjectErrorCode { NOT_OBJECT = "NOT_OBJECT" } export function checkObject (mixed : any) : undefined|ObjectErrorCode { if (mixed instanceof Object) { return undefined; } else { return ObjectErrorCode.NOT_OBJECT; } } export function checkObjectPredicate (mixed : any, predicate : (obj : Object) => undefined|ErrorT) : undefined|ObjectErrorCode|ErrorT { const error = checkObject(mixed); if (error !== undefined) { return error; } return predicate(mixed); }