@@ -36,13 +36,15 @@ type ExceptionStatic<TParams extends ExceptionParams, TOptions extends Exception
3636 Instance : BaseException < TParams , TOptions > ;
3737} ;
3838
39- type ExceptionConstructor <
39+ type ExceptionConstructor < TParams extends ExceptionParams , TOptions extends ExceptionOptions > = new (
40+ ...args : ExceptionConstructorArgs < TParams , TOptions >
41+ ) => BaseException < TParams , TOptions > ;
42+
43+ type ExceptionType <
4044 TParams extends ExceptionParams ,
4145 TOptions extends ExceptionOptions ,
4246 TStaticProps = unknown
43- > = ExceptionStatic < TParams , TOptions > &
44- TStaticProps &
45- ( new ( ...args : ExceptionConstructorArgs < TParams , TOptions > ) => BaseException < TParams , TOptions > ) ;
47+ > = ExceptionConstructor < TParams , TOptions > & ExceptionStatic < TParams , TOptions > & TStaticProps ;
4648
4749abstract class BaseException < TParams extends ExceptionParams , TOptions extends ExceptionOptions > extends Error {
4850 override cause : TOptions [ 'cause' ] ;
@@ -79,12 +81,9 @@ class ExceptionBuilder<
7981 }
8082
8183 build ( ) : [ TParams ] extends [ ExceptionParams ]
82- ? SingleKeyMap < TParams [ 'name' ] , ExceptionConstructor < NonNullable < TParams > , TOptions , TStaticMethods > >
84+ ? SingleKeyMap < TParams [ 'name' ] , ExceptionType < NonNullable < TParams > , TOptions , TStaticMethods > >
8385 : never ;
84- build ( ) : SingleKeyMap <
85- NonNullable < TParams > [ 'name' ] ,
86- ExceptionConstructor < NonNullable < TParams > , TOptions , TStaticMethods >
87- > {
86+ build ( ) : SingleKeyMap < NonNullable < TParams > [ 'name' ] , ExceptionType < NonNullable < TParams > , TOptions , TStaticMethods > > {
8887 if ( ! this . params ) {
8988 throw new Error ( 'Cannot build exception: params is undefined' ) ;
9089 }
0 commit comments