@@ -21,11 +21,12 @@ class Options {
21
21
}
22
22
23
23
type Dictionary < T > = { [ x : string ] : T } ;
24
+ type NumericallyIndexed < T > = { [ x : number ] : T } ;
24
25
25
26
const enum E { A, B, C }
26
27
27
- type K00 = keyof any ; // string | number
28
- type K01 = keyof string ; // number | "toString" | "charAt" | ...
28
+ type K00 = keyof any ; // string
29
+ type K01 = keyof string ; // "toString" | "charAt" | ...
29
30
type K02 = keyof number ; // "toString" | "toFixed" | "toExponential" | ...
30
31
type K03 = keyof boolean ; // "valueOf"
31
32
type K04 = keyof void ; // never
@@ -34,19 +35,20 @@ type K06 = keyof null; // never
34
35
type K07 = keyof never ; // never
35
36
36
37
type K10 = keyof Shape ; // "name" | "width" | "height" | "visible"
37
- type K11 = keyof Shape [ ] ; // number | "length" | "toString" | ...
38
- type K12 = keyof Dictionary < Shape > ; // string | number
38
+ type K11 = keyof Shape [ ] ; // "length" | "toString" | ...
39
+ type K12 = keyof Dictionary < Shape > ; // string
39
40
type K13 = keyof { } ; // never
40
41
type K14 = keyof Object ; // "constructor" | "toString" | ...
41
42
type K15 = keyof E ; // "toString" | "toFixed" | "toExponential" | ...
42
- type K16 = keyof [ string , number ] ; // number | "0" | "1" | "length" | "toString" | ...
43
+ type K16 = keyof [ string , number ] ; // "0" | "1" | "length" | "toString" | ...
43
44
type K17 = keyof ( Shape | Item ) ; // "name"
44
45
type K18 = keyof ( Shape & Item ) ; // "name" | "width" | "height" | "visible" | "price"
46
+ type K19 = keyof NumericallyIndexed < Shape > // never
45
47
46
48
type KeyOf < T > = keyof T ;
47
49
48
50
type K20 = KeyOf < Shape > ; // "name" | "width" | "height" | "visible"
49
- type K21 = KeyOf < Dictionary < Shape >> ; // string | number
51
+ type K21 = KeyOf < Dictionary < Shape >> ; // string
50
52
51
53
type NAME = "name" ;
52
54
type WIDTH_OR_HEIGHT = "width" | "height" ;
@@ -247,7 +249,8 @@ class OtherPerson {
247
249
getParts() {
248
250
return getProperty ( this , "parts" )
249
251
}
250
- }
252
+ }
253
+
251
254
252
255
//// [keyofAndIndexedAccess.js]
253
256
var __extends = ( this && this . __extends ) || function ( d , b ) {
@@ -449,6 +452,9 @@ declare class Options {
449
452
declare type Dictionary< T > = {
450
453
[ x : string ] : T ;
451
454
} ;
455
+ declare type NumericallyIndexed< T > = {
456
+ [ x : number ] : T ;
457
+ } ;
452
458
declare const enum E {
453
459
A = 0 ,
454
460
B = 1 ,
@@ -471,6 +477,7 @@ declare type K15 = keyof E;
471
477
declare type K16 = keyof [string, number];
472
478
declare type K17 = keyof (Shape | Item);
473
479
declare type K18 = keyof (Shape & Item ) ;
480
+ declare type K19 = keyof NumericallyIndexed < Shape > ;
474
481
declare type KeyOf< T > = keyof T;
475
482
declare type K20 = KeyOf< Shape > ;
476
483
declare type K21 = KeyOf< Dictionary < Shape > > ;
0 commit comments