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"
}
|