Custom error to be thrown when derived classes do not extend an abstract class correctly.

To use the error correctly, write something like:

class AnAbstractClass {
constructor() {
if (this.constructor === AnAbstractClass) {
throw new AbstractClassError({
kind: "constructor",
baseClass: AnAbstractClass,
});
// message: "AbstractClassError: Cannot instantiate abstract class AnAbstractClass."
}
}

notImplementedMethod() {
throw new AbstractClassError({
kind: "abstractMethod",
baseClass: AnAbstractClass,
derivedClass: this.constructor,
method: this.notImplementedMethod,
});
// message: "AbstractClassError: Derived class ADerivedClass has not implemented abstract method AnAbstractClass::notImplementedMethod."
}
}

Formats a message like: "AbstractClassError:

Hierarchy

  • Error
    • abstractClassError

Constructors

Properties

cause?: unknown
message: string
name: string
stack?: string
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

Optional override for formatting stack traces

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void

MMNEPVFCICPMFPCPTTAAATR