# @types/makeerror

> TypeScript definitions for makeerror

Latest version **1.0.3** (published 2023-11-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install @types/makeerror
pnpm add @types/makeerror
yarn add @types/makeerror
bun add @types/makeerror
```

## Health

**Score 45/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; high maintenance score; popular repo; extremely popular.

Warnings: low downloads; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2023-11-07 |
| First published | 2023-10-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 5.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51438 |
| Maintainers | types |

## Links

- npm: https://www.npmjs.com/package/@types/makeerror
- Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
- Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/makeerror
- npm.io page: https://npm.io/package/@types/makeerror

## Recent versions

- 1.0.3 (latest) — 2023-11-07
- 1.0.2 — 2023-10-18
- 1.0.1 — 2023-10-09
- 1.0.0 — 2023-10-09

## README

# Installation
> `npm install --save @types/makeerror`

# Summary
This package contains type definitions for makeerror (https://github.com/daaku/nodejs-makeerror#readme).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/makeerror.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/makeerror/index.d.ts)
````ts
export = makeError;

declare function makeError<T extends makeError.DefaultData>(
    name: string,
    defaultMessage?: string,
    defaultData?: T,
): makeError.CustomErrorConstructor<T>;

declare namespace makeError {
    type DefaultData = Record<string, unknown> & { proto?: CustomError<Record<string, unknown>> };

    interface CustomErrorConstructor<T extends Record<string, unknown>> {
        new<U, V>(
            message?: U extends Record<string, unknown> ? U : string,
            data?: V extends Record<string, unknown> ? V : never,
        ): U extends Record<string, unknown> ? V extends Record<string, unknown> ? CustomError<V>
            : CustomError<U>
            : V extends Record<string, unknown> ? CustomError<V>
            : CustomError<T>;

        <U, V>(
            message?: U extends Record<string, unknown> ? U : string,
            data?: V extends Record<string, unknown> ? V : never,
        ): U extends Record<string, unknown> ? V extends Record<string, unknown> ? CustomError<V>
            : CustomError<U>
            : V extends Record<string, unknown> ? CustomError<V>
            : CustomError<T>;

        readonly prototype: "proto" extends keyof T ? T["proto"] : BaseError;
    }

    interface CustomError<T extends Record<string, unknown>> extends BaseError {
        data: DataObject<T>;
        fileName?: string;
        lineNumber?: number;
    }
}

type DataObject<T extends Record<string, unknown>> = {
    [P in keyof T as Exclude<P, "proto">]: T[P];
};

interface BaseError extends Error {
    toString(): string;
}

````

### Additional Details
 * Last updated: Tue, 07 Nov 2023 09:09:39 GMT
 * Dependencies: none

# Credits
These definitions were written by [yutak23](https://github.com/yutak23).

---
_Source: https://npm.io/package/@types/makeerror · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
