Skip to content

Commit 661ecc2

Browse files
falsandtrumhegazy
falsandtru
authored andcommitted
Improve Object.{values,entries} static methods (#18875)
1 parent 5faa739 commit 661ecc2

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

Diff for: src/lib/es2017.object.d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ interface ObjectConstructor {
33
* Returns an array of values of the enumerable properties of an object
44
* @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
55
*/
6-
values<T>(o: { [s: string]: T }): T[];
6+
values<T>(o: { [s: string]: T } | { [n: number]: T }): T[];
77

88
/**
99
* Returns an array of values of the enumerable properties of an object
@@ -15,7 +15,7 @@ interface ObjectConstructor {
1515
* Returns an array of key/values of the enumerable properties of an object
1616
* @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
1717
*/
18-
entries<T>(o: { [s: string]: T }): [string, T][];
18+
entries<T>(o: { [s: string]: T } | { [n: number]: T }): [string, T][];
1919

2020
/**
2121
* Returns an array of key/values of the enumerable properties of an object

Diff for: tests/baselines/reference/useObjectValuesAndEntries1.types

+10-10
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ var o = { a: 1, b: 2 };
1010
for (var x of Object.values(o)) {
1111
>x : number
1212
>Object.values(o) : number[]
13-
>Object.values : { <T>(o: { [s: string]: T; }): T[]; (o: any): any[]; }
13+
>Object.values : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): T[]; (o: any): any[]; }
1414
>Object : ObjectConstructor
15-
>values : { <T>(o: { [s: string]: T; }): T[]; (o: any): any[]; }
15+
>values : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): T[]; (o: any): any[]; }
1616
>o : { a: number; b: number; }
1717

1818
let y = x;
@@ -23,25 +23,25 @@ for (var x of Object.values(o)) {
2323
var entries = Object.entries(o); // <-- entries: ['a' | 'b', number][]
2424
>entries : [string, number][]
2525
>Object.entries(o) : [string, number][]
26-
>Object.entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
26+
>Object.entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
2727
>Object : ObjectConstructor
28-
>entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
28+
>entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
2929
>o : { a: number; b: number; }
3030

3131
var entries1 = Object.entries(1); // <-- entries: [string, any][]
3232
>entries1 : [string, any][]
3333
>Object.entries(1) : [string, any][]
34-
>Object.entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
34+
>Object.entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
3535
>Object : ObjectConstructor
36-
>entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
36+
>entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
3737
>1 : 1
3838

3939
var entries2 = Object.entries({a: true, b: 2}) // ['a' | 'b', number | boolean][]
4040
>entries2 : [string, number | boolean][]
4141
>Object.entries({a: true, b: 2}) : [string, number | boolean][]
42-
>Object.entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
42+
>Object.entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
4343
>Object : ObjectConstructor
44-
>entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
44+
>entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
4545
>{a: true, b: 2} : { a: true; b: 2; }
4646
>a : boolean
4747
>true : true
@@ -51,8 +51,8 @@ var entries2 = Object.entries({a: true, b: 2}) // ['a' | 'b', number | boolean][
5151
var entries3 = Object.entries({}) // [never, any][]
5252
>entries3 : [string, {}][]
5353
>Object.entries({}) : [string, {}][]
54-
>Object.entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
54+
>Object.entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
5555
>Object : ObjectConstructor
56-
>entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
56+
>entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
5757
>{} : {}
5858

Diff for: tests/baselines/reference/useObjectValuesAndEntries4.types

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ var o = { a: 1, b: 2 };
1010
for (var x of Object.values(o)) {
1111
>x : number
1212
>Object.values(o) : number[]
13-
>Object.values : { <T>(o: { [s: string]: T; }): T[]; (o: any): any[]; }
13+
>Object.values : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): T[]; (o: any): any[]; }
1414
>Object : ObjectConstructor
15-
>values : { <T>(o: { [s: string]: T; }): T[]; (o: any): any[]; }
15+
>values : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): T[]; (o: any): any[]; }
1616
>o : { a: number; b: number; }
1717

1818
let y = x;
@@ -23,8 +23,8 @@ for (var x of Object.values(o)) {
2323
var entries = Object.entries(o);
2424
>entries : [string, number][]
2525
>Object.entries(o) : [string, number][]
26-
>Object.entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
26+
>Object.entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
2727
>Object : ObjectConstructor
28-
>entries : { <T>(o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
28+
>entries : { <T>(o: { [s: string]: T; } | { [n: number]: T; }): [string, T][]; (o: any): [string, any][]; }
2929
>o : { a: number; b: number; }
3030

0 commit comments

Comments
 (0)