1
1
namespace Interfaces {
2
+ export interface IDummyClass {
3
+ name : string ;
4
+ date : string ;
5
+ c : Interfaces . IAnotherClass ;
6
+ }
7
+
8
+ export class DummyClass implements IDummyClass , Endpoints . IHaveQueryParams {
9
+ name : string ;
10
+ date : string ;
11
+ c : Interfaces . AnotherClass ;
12
+
13
+ getQueryParams ( ) {
14
+ return this ;
15
+ }
16
+ }
17
+
2
18
export interface IAnotherClass {
3
- number ?: number ;
4
- name ? : string ;
5
- list ? : string [ ] ;
19
+ number : string | number ;
20
+ name : string ;
21
+ list : string [ ] ;
6
22
}
7
23
8
24
export class AnotherClass implements IAnotherClass , Endpoints . IHaveQueryParams {
9
- number : number ;
25
+ number : string | number ;
10
26
name : string ;
11
27
list : string [ ] ;
12
-
28
+
13
29
getQueryParams ( ) {
14
30
return this ;
15
31
}
16
32
}
17
33
18
- export interface IMegaClass extends IAnotherClass {
19
- something ? : number ;
34
+ export interface IDerivedClassWithShadowedProperty extends IAnotherClass {
35
+ number : number | string ;
20
36
}
21
37
22
- export class MegaClass extends AnotherClass implements IMegaClass , Endpoints . IHaveQueryParams {
23
- something : number ;
24
-
38
+ export class DerivedClassWithShadowedProperty extends AnotherClass implements IDerivedClassWithShadowedProperty , Endpoints . IHaveQueryParams {
39
+ number : number | string ;
40
+
25
41
constructor ( ) {
26
42
super ( ) ;
27
43
}
28
-
44
+
29
45
getQueryParams ( ) {
30
46
return this ;
31
47
}
32
48
}
33
49
34
- export interface IDummyClass {
35
- name ?: string ;
36
- date ?: string ;
37
- c ?: Interfaces . IAnotherClass ;
50
+ export interface IDerivedClassWithAnotherShadowedProperty extends IDerivedClassWithShadowedProperty {
51
+ number : number ;
38
52
}
39
53
40
- export class DummyClass implements IDummyClass , Endpoints . IHaveQueryParams {
41
- name : string ;
42
- date : string ;
43
- c : Interfaces . AnotherClass ;
54
+ export class DerivedClassWithAnotherShadowedProperty extends DerivedClassWithShadowedProperty implements IDerivedClassWithAnotherShadowedProperty , Endpoints . IHaveQueryParams {
55
+ number : number ;
56
+
57
+ constructor ( ) {
58
+ super ( ) ;
59
+ }
60
+
61
+ getQueryParams ( ) {
62
+ return this ;
63
+ }
64
+ }
44
65
66
+ export interface IMegaClass extends IAnotherClass {
67
+ something : number ;
68
+ }
69
+
70
+ export class MegaClass extends AnotherClass implements IMegaClass , Endpoints . IHaveQueryParams {
71
+ something : number ;
72
+
73
+ constructor ( ) {
74
+ super ( ) ;
75
+ }
76
+
45
77
getQueryParams ( ) {
46
78
return this ;
47
79
}
48
80
}
49
81
50
82
export interface IChain1Generic1 < T > {
51
- value ? : T ;
83
+ value : T ;
52
84
}
53
85
54
86
export class Chain1Generic1 < T > implements IChain1Generic1 < T > , Endpoints . IHaveQueryParams {
55
87
value : T ;
56
-
88
+
57
89
getQueryParams ( ) {
58
90
return this ;
59
91
}
60
92
}
61
93
62
94
export interface IChain1Generic2 < T1 , T2 > {
63
- value11 ? : T1 ;
64
- value12 ? : T2 ;
95
+ value11 : T1 ;
96
+ value12 : T2 ;
65
97
}
66
98
67
99
export class Chain1Generic2 < T1 , T2 > implements IChain1Generic2 < T1 , T2 > , Endpoints . IHaveQueryParams {
68
100
value11 : T1 ;
69
101
value12 : T2 ;
70
-
102
+
71
103
getQueryParams ( ) {
72
104
return this ;
73
105
}
74
106
}
75
107
76
108
export interface IChain2Generic1 < TValue > extends IChain1Generic2 < TValue , number > {
77
- value2 ? : TValue ;
109
+ value2 : TValue ;
78
110
}
79
111
80
112
export class Chain2Generic1 < TValue > extends Chain1Generic2 < TValue , number > implements IChain2Generic1 < TValue > , Endpoints . IHaveQueryParams {
81
113
value2 : TValue ;
82
-
114
+
83
115
constructor ( ) {
84
116
super ( ) ;
85
117
}
86
-
118
+
87
119
getQueryParams ( ) {
88
120
return this ;
89
121
}
90
122
}
91
123
92
124
export interface IChain3 extends IChain2Generic1 < Interfaces . MegaClass > {
93
- value3 ? : any ;
125
+ value3 : any ;
94
126
}
95
127
96
128
export class Chain3 extends Chain2Generic1 < Interfaces . MegaClass > implements IChain3 , Endpoints . IHaveQueryParams {
97
129
value3 : any ;
98
-
130
+
99
131
constructor ( ) {
100
132
super ( ) ;
101
133
}
102
-
134
+
103
135
getQueryParams ( ) {
104
136
return this ;
105
137
}
106
138
}
107
- }
139
+ }
0 commit comments