Skip to content

Commit bc05561

Browse files
committed
add types for Object.keysLength
1 parent 2b4e6a3 commit bc05561

File tree

4 files changed

+65
-0
lines changed

4 files changed

+65
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// https://github.com/tc39/proposal-object-keys-length
2+
3+
interface ObjectConstructor {
4+
/**
5+
* Returns the number of enumerable own properties of an object
6+
* @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.
7+
*/
8+
keysLength(o: {}): number;
9+
}

packages/core-js/modules/esnext.object.keys-length.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// @types: proposals/object-keys-length
12
'use strict';
23
var $ = require('../internals/export');
34
var getBuiltInStaticMethod = require('../internals/get-built-in-static-method');
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import 'core-js/full';
2+
import keysLength from 'core-js/full/object/keys-length';
3+
import { assertNumber } from '../../helpers';
4+
5+
const obj = { a: 1, b: 2 };
6+
const arr = [1, 2, 3];
7+
const strArr = ['a', 'b', 'c'];
8+
const arrLike: ArrayLike<number> = { 0: 10, 1: 20, length: 2 };
9+
const emptyObj = {};
10+
const string = 'abc';
11+
12+
assertNumber(keysLength(obj));
13+
assertNumber(keysLength(arr));
14+
assertNumber(keysLength(strArr));
15+
assertNumber(keysLength(arrLike));
16+
assertNumber(keysLength(emptyObj));
17+
assertNumber(keysLength(string));
18+
19+
assertNumber(Object.keysLength(obj));
20+
assertNumber(Object.keysLength(arr));
21+
assertNumber(Object.keysLength(strArr));
22+
assertNumber(Object.keysLength(arrLike));
23+
assertNumber(Object.keysLength(emptyObj));
24+
assertNumber(Object.keysLength(string));
25+
26+
// @ts-expect-error
27+
keysLength();
28+
// @ts-expect-error
29+
keysLength(null);
30+
31+
// @ts-expect-error
32+
Object.keysLength();
33+
// @ts-expect-error
34+
Object.keysLength(null);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import keysLength from '@core-js/pure/full/object/keys-length';
2+
import { assertNumber } from '../../helpers';
3+
4+
const obj = { a: 1, b: 2 };
5+
const arr = [1, 2, 3];
6+
const strArr = ['a', 'b', 'c'];
7+
const arrLike: ArrayLike<number> = { 0: 10, 1: 20, length: 2 };
8+
const emptyObj = {};
9+
const string = 'abc';
10+
11+
assertNumber(keysLength(obj));
12+
assertNumber(keysLength(arr));
13+
assertNumber(keysLength(strArr));
14+
assertNumber(keysLength(arrLike));
15+
assertNumber(keysLength(emptyObj));
16+
assertNumber(keysLength(string));
17+
18+
// @ts-expect-error
19+
keysLength();
20+
// @ts-expect-error
21+
keysLength(null);

0 commit comments

Comments
 (0)