File tree Expand file tree Collapse file tree 3 files changed +10
-4
lines changed Expand file tree Collapse file tree 3 files changed +10
-4
lines changed Original file line number Diff line number Diff line change
1
+ class UnreachableCaseError extends Error {
2
+ constructor ( val : never , message : string ) {
3
+ super ( `${ message } : [${ JSON . stringify ( val ) } ]` ) ;
4
+ }
5
+ }
6
+
7
+ export const exhaustive = ( unhandledCase : never , message = 'Unreachable case' ) : never => {
8
+ throw new UnreachableCaseError ( unhandledCase , message ) ;
9
+ } ;
Original file line number Diff line number Diff line change @@ -3,3 +3,4 @@ export * from './overloads';
3
3
export * from './timeout' ;
4
4
export * from './utils' ;
5
5
export * from './object' ;
6
+ export * from './exhaustive' ;
Original file line number Diff line number Diff line change @@ -132,7 +132,3 @@ export type FilterOutFromUnionByTypeProperty<
132
132
? never
133
133
: { [ K in KeyName ] : Exclude < ActualValue , ValueToExclude > } & Omit < Union , KeyName >
134
134
: Union ;
135
-
136
- export const exhaustive = ( unhandledCase : never ) : never => {
137
- throw new Error ( `Unhandled case ${ unhandledCase } ` ) ;
138
- } ;
You can’t perform that action at this time.
0 commit comments