Retrieve error class and instance types
mainmodern-errors relies heavily on TypeScript's type inference. You can use standard utility types to retrieve the types of error classes and instances:
typeof ExampleError: Returns the error class type.InstanceType<typeof ExampleError>: Returns the error instance type.
This is useful for typing functions that accept error classes or specific error instances.
type AnyErrorClass = ReturnType<typeof BaseError.subclass>
const InputError = BaseError.subclass('InputError')
type InputErrorClass = typeof InputError
type InputErrorInstance = InstanceType<typeof InputErrorClass>
const printErrorClass = (ErrorClass: AnyErrorClass) => {
// ...
}
const printInputErrorClass = (InputErrorClass: InputErrorClass) => {
// ...
}
const logInputError = (inputError: InputErrorInstance) => {
// ...
}
printErrorClass(InputError)
printInputErrorClass(InputError)
logInputError(new InputError('Wrong user name'))