File: partialOfLargeAPIIsAbleToBeWorkedWith.types

package info (click to toggle)
node-typescript 4.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 396,552 kB
  • sloc: javascript: 1,444,377; makefile: 7; sh: 3
file content (252 lines) | stat: -rw-r--r-- 8,181 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
=== tests/cases/compiler/partialOfLargeAPIIsAbleToBeWorkedWith.ts ===
interface MyAPI {
    0: (x: 0) => string;
>0 : (x: 0) => string
>x : 0

    1: (x: 1) => string;
>1 : (x: 1) => string
>x : 1

    2: (x: 2) => string;
>2 : (x: 2) => string
>x : 2

    3: (x: 3) => string;
>3 : (x: 3) => string
>x : 3

    4: (x: 4) => string;
>4 : (x: 4) => string
>x : 4

    5: (x: 5) => string;
>5 : (x: 5) => string
>x : 5

    6: (x: 6) => string;
>6 : (x: 6) => string
>x : 6

    7: (x: 7) => string;
>7 : (x: 7) => string
>x : 7

    8: (x: 8) => string;
>8 : (x: 8) => string
>x : 8

    9: (x: 9) => string;
>9 : (x: 9) => string
>x : 9

    10: (x: 10) => string;
>10 : (x: 10) => string
>x : 10

    11: (x: 11) => string;
>11 : (x: 11) => string
>x : 11

    12: (x: 12) => string;
>12 : (x: 12) => string
>x : 12

    13: (x: 13) => string;
>13 : (x: 13) => string
>x : 13

    14: (x: 14) => string;
>14 : (x: 14) => string
>x : 14

    15: (x: 15) => string;
>15 : (x: 15) => string
>x : 15

    16: (x: 16) => string;
>16 : (x: 16) => string
>x : 16

    17: (x: 17) => string;
>17 : (x: 17) => string
>x : 17

    18: (x: 18) => string;
>18 : (x: 18) => string
>x : 18

    19: (x: 19) => string;
>19 : (x: 19) => string
>x : 19

    20: (x: 20) => string;
>20 : (x: 20) => string
>x : 20

    21: (x: 21) => string;
>21 : (x: 21) => string
>x : 21

    22: (x: 22) => string;
>22 : (x: 22) => string
>x : 22

    23: (x: 23) => string;
>23 : (x: 23) => string
>x : 23

    24: (x: 24) => string;
>24 : (x: 24) => string
>x : 24

    25: (x: 25) => string;
>25 : (x: 25) => string
>x : 25

    26: (x: 26) => string;
>26 : (x: 26) => string
>x : 26

    27: (x: 27) => string;
>27 : (x: 27) => string
>x : 27

    28: (x: 28) => string;
>28 : (x: 28) => string
>x : 28

    29: (x: 29) => string;
>29 : (x: 29) => string
>x : 29

    30: (x: 30) => string;
>30 : (x: 30) => string
>x : 30

    31: (x: 31) => string;
>31 : (x: 31) => string
>x : 31

    32: (x: 32) => string;
>32 : (x: 32) => string
>x : 32

    33: (x: 33) => string;
>33 : (x: 33) => string
>x : 33

    34: (x: 34) => string;
>34 : (x: 34) => string
>x : 34

    35: (x: 35) => string;
>35 : (x: 35) => string
>x : 35

    36: (x: 36) => string;
>36 : (x: 36) => string
>x : 36

    37: (x: 37) => string;
>37 : (x: 37) => string
>x : 37

    38: (x: 38) => string;
>38 : (x: 38) => string
>x : 38

    39: (x: 39) => string;
>39 : (x: 39) => string
>x : 39

    40: (x: 40) => string;
>40 : (x: 40) => string
>x : 40

    41: (x: 41) => string;
>41 : (x: 41) => string
>x : 41

    42: (x: 42) => string;
>42 : (x: 42) => string
>x : 42

    43: (x: 43) => string;
>43 : (x: 43) => string
>x : 43

    44: (x: 44) => string;
>44 : (x: 44) => string
>x : 44

    45: (x: 45) => string;
>45 : (x: 45) => string
>x : 45

    46: (x: 46) => string;
>46 : (x: 46) => string
>x : 46

    47: (x: 47) => string;
>47 : (x: 47) => string
>x : 47

    48: (x: 48) => string;
>48 : (x: 48) => string
>x : 48

    49: (x: 49) => string;
>49 : (x: 49) => string
>x : 49

    50: (x: 50) => string;
>50 : (x: 50) => string
>x : 50

    51: (x: 51) => string;
>51 : (x: 51) => string
>x : 51
}

const obj: Partial<MyAPI> = {};
>obj : Partial<MyAPI>
>{} : {}

declare var keys: (keyof MyAPI)[];
>keys : (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51)[]

for (const k of keys) {
>k : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51
>keys : (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51)[]

    obj[k] = () => "12"; // shouldn't cause a complexity error
>obj[k] = () => "12" : () => string
>obj[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | undefined
>obj : Partial<MyAPI>
>k : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51
>() => "12" : () => string
>"12" : "12"
}

type PartialNull<T> = {[K in keyof T]?: T[K] | null};
>PartialNull : PartialNull<T>
>null : null

const obj2: PartialNull<MyAPI> = {};
>obj2 : PartialNull<MyAPI>
>{} : {}

for (const k of keys) {
>k : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51
>keys : (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51)[]

    obj2[k] = () => "12"; // shouldn't cause a complexity error
>obj2[k] = () => "12" : () => string
>obj2[k] : (((x: 0) => string) & ((x: 1) => string) & ((x: 2) => string) & ((x: 3) => string) & ((x: 4) => string) & ((x: 5) => string) & ((x: 6) => string) & ((x: 7) => string) & ((x: 8) => string) & ((x: 9) => string) & ((x: 10) => string) & ((x: 11) => string) & ((x: 12) => string) & ((x: 13) => string) & ((x: 14) => string) & ((x: 15) => string) & ((x: 16) => string) & ((x: 17) => string) & ((x: 18) => string) & ((x: 19) => string) & ((x: 20) => string) & ((x: 21) => string) & ((x: 22) => string) & ((x: 23) => string) & ((x: 24) => string) & ((x: 25) => string) & ((x: 26) => string) & ((x: 27) => string) & ((x: 28) => string) & ((x: 29) => string) & ((x: 30) => string) & ((x: 31) => string) & ((x: 32) => string) & ((x: 33) => string) & ((x: 34) => string) & ((x: 35) => string) & ((x: 36) => string) & ((x: 37) => string) & ((x: 38) => string) & ((x: 39) => string) & ((x: 40) => string) & ((x: 41) => string) & ((x: 42) => string) & ((x: 43) => string) & ((x: 44) => string) & ((x: 45) => string) & ((x: 46) => string) & ((x: 47) => string) & ((x: 48) => string) & ((x: 49) => string) & ((x: 50) => string) & ((x: 51) => string)) | null | undefined
>obj2 : PartialNull<MyAPI>
>k : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51
>() => "12" : () => string
>"12" : "12"
}