import * as check from "../../../../sync/check/generic/object"; import {AssertError} from "../../../../sync/error/AssertError"; export function assertInstanceOf (name : string, mixed : any, clazz : { new(...args : any[]) : T, name : string }) : (T)|never { const error = check.checkInstanceOf(mixed, clazz); if (error === undefined) { return mixed; } else { throw new AssertError(name, error, mixed, clazz); } } export function assertInstanceOfHandler (clazz : { new(...args : any[]) : T, name : string }) : (name : string, mixed : any) => (T)|never { return (name : string, mixed : any) : (T)|never => { return assertInstanceOf(name, mixed, clazz); }; }