UNPKG

trusktr-dummy-test-pkg

Version:

JavaScript/TypeScript class inheritance tools.

15 lines (14 loc) 1.04 kB
import { Constructor } from './utils.js'; export declare type MixinFunction = <T extends Constructor<any>>(BaseClass: T) => T; export declare type MixinFunctionWithDefault = <T extends Constructor<any>>(BaseClass?: T) => T; export declare type MixinResult<TClass extends Constructor, TBase extends Constructor> = Constructor<InstanceType<TClass> & InstanceType<TBase>> & TClass & TBase; export declare function Mixin<T extends MixinFunction>(mixinFn: T, DefaultBase?: Constructor): ReturnType<T> & { mixin: T; }; export default Mixin; export { WithDefault, Cached, HasInstance, ApplyDefault, Dedupe }; declare function WithDefault<T extends MixinFunction>(classFactory: T, Default: Constructor): any; declare function Cached<T extends MixinFunction>(classFactory: T): (Base: new (...a: any[]) => object) => any; declare function HasInstance<T extends MixinFunction>(classFactory: T): any; declare function ApplyDefault<T extends MixinFunction>(classFactory: T): T; declare function Dedupe<T extends MixinFunction>(classFactory: T): any;