Utility TypeScript @ 2.0.0-beta
    Preparing search index...

    Class AbstractConfigurableClass<Args>Abstract

    Classes with configurable options set in the constructor.

    0.1.0

    export class ExampleClass extends AbstractConfigurableClass<ExampleClass.Args> {


    /* PROPERTIES
    * ====================================================================== */

    public get ARGS_DEFAULT() {

    return {
    argsRecursive: false,
    exampleProp: true,
    } as const satisfies ExampleClass.Args;
    }

    /**
    * Build a complete args object.
    */
    public override buildArgs(
    args?: Partial<ExampleClass.Args>,
    ): ExampleClass.Args {

    const mergedDefault = this.ARGS_DEFAULT as ExampleClass.Args;

    // using this.mergeArgs here can cause issues because
    // this method is sometimes called from the prototype
    return mergeArgs( mergedDefault, args, this.ARGS_DEFAULT.argsRecursive );
    }



    /* CONSTRUCTOR
    * ====================================================================== */

    public constructor ( args: Partial<ExampleClass.Args> = {} ) {
    super( args );
    }
    }

    export namespace ExampleClass {

    export interface Args extends AbstractConfigurableClass.Args {
    argsRecursive: false;
    exampleProp: boolean;
    };
    };

    Type Parameters

    Hierarchy (View Summary)

    Index

    Constructors

    Properties - Aliases

    Properties - Args

    Accessors

    Methods - Args

    Methods - Exporters

    Constructors

    Properties - Aliases

    mergeArgs: {
        <D extends object>(
            defaults: D,
            inputs?: undefined,
            recursive?: boolean,
        ): D;
        <D extends object, I extends Partial<D>>(
            defaults: D,
            inputs: I,
            recursive?: false,
        ): D & I;
        <D extends object, I extends Partial<D> | RecursivePartial<D>>(
            defaults: D,
            inputs: I,
            recursive: true,
        ): D & I;
        <D extends object, I extends Partial<D> | RecursivePartial<D>>(
            defaults: D,
            inputs?: I,
            recursive?: boolean,
        ): D | D & I;
    } = mergeArgs

    An alias for this package's mergeArgs().

    Type declaration

      • <D extends object>(defaults: D, inputs?: undefined, recursive?: boolean): D
      • Inputs can be undefined, and if so, the default is returned.

        Type Parameters

        • D extends object

          Default object type.

        Parameters

        • defaults: D

          Default values (if not specified in inputs).

        • Optionalinputs: undefined

          Overriding values (changes to make).

        • Optionalrecursive: boolean

          Optional. Whether to merge the object recursively. Default false.

        Returns D

        Resulting object with all the defaults and inputs keys with either default values or input values, as appropriate.

      • <D extends object, I extends Partial<D>>(
            defaults: D,
            inputs: I,
            recursive?: false,
        ): D & I
      • Passing recursive as false means that the input type must be a Partial (not RecursivePartial).

        Type Parameters

        • D extends object
        • I extends Partial<D>

        Parameters

        • defaults: D
        • inputs: I
        • Optionalrecursive: false

        Returns D & I

      • <D extends object, I extends Partial<D> | RecursivePartial<D>>(
            defaults: D,
            inputs: I,
            recursive: true,
        ): D & I
      • Passing recursive as true means that the input type may actually be a RecursivePartial.

        Type Parameters

        Parameters

        • defaults: D
        • inputs: I
        • recursive: true

        Returns D & I

      • <D extends object, I extends Partial<D> | RecursivePartial<D>>(
            defaults: D,
            inputs?: I,
            recursive?: boolean,
        ): D | D & I
      • Universal overload.

        Type Parameters

        Parameters

        • defaults: D
        • Optionalinputs: I
        • Optionalrecursive: boolean

        Returns D | D & I

    Properties - Args

    args: Args

    A completed args object.

    Accessors

    Methods - Args

    Methods - Exporters