Skip to content

Commit 9cac35b

Browse files
authored
Merge pull request #12533 from ethanresnick/keyof-tests
Update keyof tests to reflect #12425
2 parents 0d4beb0 + 8b7252c commit 9cac35b

File tree

4 files changed

+479
-446
lines changed

4 files changed

+479
-446
lines changed

tests/baselines/reference/keyofAndIndexedAccess.js

+14-7
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ class Options {
2121
}
2222

2323
type Dictionary<T> = { [x: string]: T };
24+
type NumericallyIndexed<T> = { [x: number]: T };
2425

2526
const enum E { A, B, C }
2627

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" | ...
2930
type K02 = keyof number; // "toString" | "toFixed" | "toExponential" | ...
3031
type K03 = keyof boolean; // "valueOf"
3132
type K04 = keyof void; // never
@@ -34,19 +35,20 @@ type K06 = keyof null; // never
3435
type K07 = keyof never; // never
3536

3637
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
3940
type K13 = keyof {}; // never
4041
type K14 = keyof Object; // "constructor" | "toString" | ...
4142
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" | ...
4344
type K17 = keyof (Shape | Item); // "name"
4445
type K18 = keyof (Shape & Item); // "name" | "width" | "height" | "visible" | "price"
46+
type K19 = keyof NumericallyIndexed<Shape> // never
4547

4648
type KeyOf<T> = keyof T;
4749

4850
type K20 = KeyOf<Shape>; // "name" | "width" | "height" | "visible"
49-
type K21 = KeyOf<Dictionary<Shape>>; // string | number
51+
type K21 = KeyOf<Dictionary<Shape>>; // string
5052

5153
type NAME = "name";
5254
type WIDTH_OR_HEIGHT = "width" | "height";
@@ -247,7 +249,8 @@ class OtherPerson {
247249
getParts() {
248250
return getProperty(this, "parts")
249251
}
250-
}
252+
}
253+
251254

252255
//// [keyofAndIndexedAccess.js]
253256
var __extends = (this && this.__extends) || function (d, b) {
@@ -449,6 +452,9 @@ declare class Options {
449452
declare type Dictionary<T> = {
450453
[x: string]: T;
451454
};
455+
declare type NumericallyIndexed<T> = {
456+
[x: number]: T;
457+
};
452458
declare const enum E {
453459
A = 0,
454460
B = 1,
@@ -471,6 +477,7 @@ declare type K15 = keyof E;
471477
declare type K16 = keyof [string, number];
472478
declare type K17 = keyof (Shape | Item);
473479
declare type K18 = keyof (Shape & Item);
480+
declare type K19 = keyof NumericallyIndexed<Shape>;
474481
declare type KeyOf<T> = keyof T;
475482
declare type K20 = KeyOf<Shape>;
476483
declare type K21 = KeyOf<Dictionary<Shape>>;

0 commit comments

Comments
 (0)