41 lines
		
	
	
		
			932 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			932 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * Create a new error constructor instance.
 | |
|  */
 | |
| declare function makeError(name: string): makeError.Constructor<makeError.BaseError>;
 | |
| 
 | |
| /**
 | |
|  * Set the constructor prototype to `BaseError`.
 | |
|  */
 | |
| declare function makeError<T extends Error>(super_: { new (...args: any[]): T }): makeError.Constructor<T & makeError.BaseError>;
 | |
| 
 | |
| /**
 | |
|  * Create a specialized error instance.
 | |
|  */
 | |
| declare function makeError<T extends Error, K>(name: string | Function, super_: K): K & makeError.SpecializedConstructor<T>;
 | |
| 
 | |
| declare module makeError {
 | |
|   /**
 | |
|    * Use with ES2015+ inheritance.
 | |
|    */
 | |
|   export class BaseError implements Error {
 | |
|     message: string;
 | |
|     name: string;
 | |
|     stack: string;
 | |
| 
 | |
|     constructor(message?: string);
 | |
|   }
 | |
| 
 | |
|   export interface Constructor <T> {
 | |
|     new (message?: string): T;
 | |
|     super_: any
 | |
|     prototype: T
 | |
|   }
 | |
| 
 | |
|   export interface SpecializedConstructor <T> {
 | |
|     super_: any
 | |
|     prototype: T
 | |
|   }
 | |
| }
 | |
| 
 | |
| export = makeError;
 |