File tree Expand file tree Collapse file tree 2 files changed +72
-0
lines changed Expand file tree Collapse file tree 2 files changed +72
-0
lines changed Original file line number Diff line number Diff line change @@ -44,3 +44,18 @@ export class CustomErrorWithMethodAndTypeAndReturn {
44
44
return new Error ( this . message )
45
45
}
46
46
}
47
+
48
+ export class Result < T , E extends Error > {
49
+ constructor (
50
+ readonly value : T | null = null ,
51
+ readonly error : E | null = null
52
+ ) { }
53
+
54
+ isOk ( ) : this is { readonly value : T } {
55
+ return this . value !== null && this . error === null ;
56
+ }
57
+
58
+ isErr ( ) : this is { readonly error : E } {
59
+ return this . error !== null && this . value === null ;
60
+ }
61
+ }
Original file line number Diff line number Diff line change
1
+ export declare class CustomError extends Error {
2
+ constructor (
3
+ message : string ,
4
+ public readonly code : number ,
5
+ public readonly metadata : Record < string , unknown >
6
+ ) {
7
+ super ( message )
8
+ this . name = 'CustomError'
9
+ }
10
+ }
11
+ export declare class CustomErrorWithMethod extends CustomError {
12
+ logError ( ) {
13
+ console . error ( `[${ this . code } ] ${ this . message } ` )
14
+ }
15
+ }
16
+ export declare class CustomErrorWithMethodAndType extends CustomError {
17
+ logError ( ) : void {
18
+ console . error ( `[${ this . code } ] ${ this . message } ` )
19
+ }
20
+
21
+ getError ( ) : Error {
22
+ return this
23
+ }
24
+ }
25
+ export declare class CustomErrorWithMethodAndTypeAndReturn {
26
+ constructor (
27
+ private message : string ,
28
+ public readonly code : number ,
29
+ public readonly metadata : Record < string , unknown >
30
+ ) {
31
+ this . message = message
32
+ this . code = code
33
+ this . metadata = metadata
34
+ }
35
+
36
+ logError ( ) : void {
37
+ console . error ( `[${ this . code } ] ${ this . message } ` )
38
+ }
39
+
40
+ getError ( ) : Error {
41
+ return new Error ( this . message )
42
+ }
43
+ }
44
+ export declare class Result < T , E extends Error > {
45
+ constructor (
46
+ readonly value : T | null = null ,
47
+ readonly error : E | null = null
48
+ ) { }
49
+
50
+ isOk ( ) : this is { readonly value : T } {
51
+ return this . value !== null && this . error === null ;
52
+ }
53
+
54
+ isErr ( ) : this is { readonly error : E } {
55
+ return this . error !== null && this . value === null ;
56
+ }
57
+ }
You can’t perform that action at this time.
0 commit comments