Skip to content

Commit 8dd03f0

Browse files
committed
Types stabilization for ts 5.5
1 parent 8dcdd8f commit 8dd03f0

File tree

68 files changed

+1588
-42
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1588
-42
lines changed

packages/core-js-types/package.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,16 @@
2525
"email": "zloirock@zloirock.ru",
2626
"url": "http://zloirock.ru"
2727
},
28-
"types": "dist/core-js-types.latest.d.ts",
28+
"types": "dist/core-js-types.56.d.ts",
2929
"files": [
30-
"dist/core-js-types.latest.d.ts"
31-
]
30+
"dist/core-js-types.56.d.ts"
31+
],
32+
"typesVersions": {
33+
">=5.6": {
34+
"*": ["dist/core-js-types.56.d.ts"]
35+
},
36+
">=5.2": {
37+
"*": ["dist/core-js-types.52.d.ts"]
38+
}
39+
}
3240
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
type Immediate = number | object;
2+
3+
declare function setImmediate(handler: (...args: any[]) => void, ...args: any[]): Immediate;
4+
5+
declare function clearImmediate(immediate: Immediate): void;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
interface Object {
2+
__defineGetter__(prop: PropertyKey, getter: () => any): void;
3+
4+
__defineSetter__(prop: PropertyKey, setter: (val: any) => void): void;
5+
6+
__lookupGetter__(prop: PropertyKey): (() => any) | undefined;
7+
8+
__lookupSetter__(prop: PropertyKey): ((val: any) => void) | undefined;
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
declare global {
2+
interface URLConstructor {
3+
parse(url: string | URL, base?: string | URL): URL | null;
4+
}
5+
}
6+
7+
export {};
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// For ensuring compatibility with TypeScript standard types, this code is based on:
2+
// https://github.com/microsoft/TypeScript/blob/2a90a739c1c1e87e3c3d0c93e16f7e5baadf8035/src/lib/es2019.array.d.ts
3+
// https://github.com/microsoft/TypeScript/blob/6f4fb0145845db22791188c4d38e3a1a0edfd449/src/lib/es2018.asyncgenerator.d.ts
4+
// License: https://github.com/microsoft/TypeScript/blob/v5.9.3/LICENSE.txt
5+
6+
declare global {
7+
interface IteratorObject<T, TReturn = any, TNext = any> extends Iterator<T, TReturn, TNext> {}
8+
9+
interface AsyncIteratorObject<T, TReturn = any, TNext = any> extends AsyncIterator<T> {
10+
[Symbol.asyncIterator](): AsyncIteratorObject<T, TReturn, TNext>;
11+
}
12+
13+
interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIteratorObject<T, TReturn, TNext> {
14+
next(...[value]: [] | [undefined]): Promise<IteratorResult<T, TReturn>>;
15+
return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
16+
throw(e: any): Promise<IteratorResult<T, TReturn>>;
17+
[Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;
18+
}
19+
20+
interface PromiseFulfilledResult<T> { status: "fulfilled"; value: T; }
21+
22+
interface PromiseRejectedResult { status: "rejected"; reason: any; }
23+
24+
interface AsyncIterable<T, TReturn = any, TNext = any> {
25+
[Symbol.asyncIterator](): AsyncIterator<T>;
26+
}
27+
}
28+
29+
export type CoreJSDecoratorMetadataObject = typeof globalThis extends { DecoratorMetadataObject: infer O } // from ts 5.2
30+
? O
31+
: Record<PropertyKey, unknown> & object;
32+
33+
export type CoreJSIteratorObject<T, TReturn = any, TNext = undefined> = IteratorObject<T, TReturn, TNext>;
34+
35+
export type CoreJSFlatArray<Arr, Depth extends number> = typeof globalThis extends { FlatArray: infer O } // from ts 4.4
36+
? O
37+
: {
38+
done: Arr;
39+
recur: Arr extends ReadonlyArray<infer InnerArr> ? CoreJSFlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>
40+
: Arr;
41+
}[Depth extends -1 ? "done" : "recur"];
42+
43+
export type CoreJSPromiseSettledResult<T> = typeof globalThis extends { PromiseSettledResult: infer O } // from ts 3.8 and es2020
44+
? O
45+
: PromiseFulfilledResult<T> | PromiseRejectedResult;
46+
47+
export type CoreJSBuiltinIteratorReturn = ReturnType<any[][typeof Symbol.iterator]> extends Iterator<any, infer TReturn>
48+
? TReturn
49+
: any;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// proposal stage: 4
2+
// https://github.com/tc39/proposal-accessible-object-hasownproperty
3+
4+
// For ensuring compatibility with TypeScript standard types, this code is based on:
5+
// https://github.com/microsoft/TypeScript/blob/069de743dbd17b47cc2fc58e1d16da5410911284/src/lib/es2022.object.d.ts
6+
// License: https://github.com/microsoft/TypeScript/blob/v5.9.3/LICENSE.txt
7+
interface ObjectConstructor {
8+
hasOwn(o: object, v: PropertyKey): boolean;
9+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// proposal stage: 3
2+
// https://github.com/tc39/proposal-arraybuffer-base64
3+
4+
// For ensuring compatibility with TypeScript standard types, this code is based on:
5+
// https://github.com/microsoft/TypeScript/blob/d3be7e171bf3149fe93c3ce5a85280f1eba3ef8d/src/lib/esnext.typedarrays.d.ts
6+
// License: https://github.com/microsoft/TypeScript/blob/v5.9.3/LICENSE.txt
7+
8+
type alphabet = 'base64' | 'base64url';
9+
10+
type lastChunkHandling = 'loose' | 'strict' | 'stop-before-partial';
11+
12+
type fromBase64Options = {
13+
alphabet?: alphabet;
14+
lastChunkHandling?: lastChunkHandling;
15+
}
16+
17+
type toBase64Options = {
18+
alphabet?: alphabet;
19+
omitPadding?: boolean;
20+
}
21+
22+
type processMetadata = {
23+
read: number;
24+
written: number;
25+
}
26+
27+
interface Uint8ArrayConstructor {
28+
fromBase64(str: string, opts?: fromBase64Options): Uint8Array;
29+
30+
fromHex(str: string): Uint8Array;
31+
}
32+
33+
interface Uint8Array {
34+
setFromBase64(str: string, opts?: fromBase64Options): processMetadata;
35+
36+
setFromHex(str: string): processMetadata;
37+
38+
toBase64(opts?: toBase64Options): string;
39+
40+
toHex(): string;
41+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// proposal stage: 4
2+
// https://github.com/tc39/proposal-arraybuffer-transfer
3+
4+
interface ArrayBuffer {
5+
// todo hack for modern ts
6+
// get detached(): boolean;
7+
8+
transfer(newByteLength?: number): ArrayBuffer;
9+
10+
transferToFixedLength(newByteLength?: number): ArrayBuffer;
11+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// proposal stage: 1
2+
// https://github.com/tc39/proposal-array-filtering
3+
4+
interface Array<T> {
5+
filterReject(callbackFn: (value: T, index: number, target: T[]) => boolean, thisArg?: any): T[];
6+
}
7+
8+
interface Int8Array {
9+
filterReject(callbackFn: (value: number, index: number, target: Int8Array) => boolean, thisArg?: any): Int8Array;
10+
}
11+
12+
interface Uint8Array {
13+
filterReject(callbackFn: (value: number, index: number, target: Uint8Array) => boolean, thisArg?: any): Uint8Array;
14+
}
15+
16+
interface Uint8ClampedArray {
17+
filterReject(callbackFn: (value: number, index: number, target: Uint8ClampedArray) => boolean, thisArg?: any): Uint8ClampedArray;
18+
}
19+
20+
interface Int16Array {
21+
filterReject(callbackFn: (value: number, index: number, target: Int16Array) => boolean, thisArg?: any): Int16Array;
22+
}
23+
24+
interface Uint16Array {
25+
filterReject(callbackFn: (value: number, index: number, target: Uint16Array) => boolean, thisArg?: any): Uint16Array;
26+
}
27+
28+
interface Int32Array {
29+
filterReject(callbackFn: (value: number, index: number, target: Int32Array) => boolean, thisArg?: any): Int32Array;
30+
}
31+
32+
interface Uint32Array {
33+
filterReject(callbackFn: (value: number, index: number, target: Uint32Array) => boolean, thisArg?: any): Uint32Array;
34+
}
35+
36+
interface Float32Array {
37+
filterReject(callbackFn: (value: number, index: number, target: Float32Array) => boolean, thisArg?: any): Float32Array;
38+
}
39+
40+
interface Float64Array {
41+
filterReject(callbackFn: (value: number, index: number, target: Float64Array) => boolean, thisArg?: any): Float64Array;
42+
}
43+
44+
interface BigInt64Array {
45+
filterReject(callbackFn: (value: bigint, index: number, target: BigInt64Array) => boolean, thisArg?: any): BigInt64Array;
46+
}
47+
48+
interface BigUint64Array {
49+
filterReject(callbackFn: (value: bigint, index: number, target: BigUint64Array) => boolean, thisArg?: any): BigUint64Array;
50+
}
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// proposal stage: 4
2+
// https://github.com/tc39/proposal-array-find-from-last
3+
4+
// For ensuring compatibility with TypeScript standard types, this code is based on:
5+
// https://github.com/microsoft/TypeScript/blob/069de743dbd17b47cc2fc58e1d16da5410911284/src/lib/es2023.array.d.ts
6+
// License: https://github.com/microsoft/TypeScript/blob/v5.9.3/LICENSE.txt
7+
8+
interface Array<T> {
9+
findLast<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S | undefined;
10+
11+
findLast(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T | undefined;
12+
13+
findLastIndex(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): number;
14+
}
15+
16+
interface Int8Array {
17+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
18+
19+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
20+
21+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
22+
}
23+
24+
interface Uint8Array {
25+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
26+
27+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
28+
29+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
30+
}
31+
32+
interface Uint8ClampedArray {
33+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
34+
35+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
36+
37+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
38+
}
39+
40+
interface Int16Array {
41+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
42+
43+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
44+
45+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
46+
}
47+
48+
interface Uint16Array {
49+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
50+
51+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
52+
53+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
54+
}
55+
56+
interface Int32Array {
57+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
58+
59+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
60+
61+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
62+
}
63+
64+
interface Uint32Array {
65+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
66+
67+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
68+
69+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
70+
}
71+
72+
interface Float32Array {
73+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
74+
75+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
76+
77+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
78+
}
79+
80+
interface Float64Array {
81+
findLast<S extends number>(predicate: (value: number, index: number, array: this) => value is S, thisArg?: any): S | undefined;
82+
83+
findLast(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number | undefined;
84+
85+
findLastIndex(predicate: (value: number, index: number, array: this) => unknown, thisArg?: any): number;
86+
}
87+
88+
interface BigInt64Array {
89+
findLast<S extends bigint>(predicate: (value: bigint, index: number, array: this) => value is S, thisArg?: any): S | undefined;
90+
91+
findLast(predicate: (value: bigint, index: number, array: this) => unknown, thisArg?: any): bigint | undefined;
92+
93+
findLastIndex(predicate: (value: bigint, index: number, array: this) => unknown, thisArg?: any): number;
94+
}
95+
96+
interface BigUint64Array {
97+
findLast<S extends bigint>(predicate: (value: bigint, index: number, array: this) => value is S, thisArg?: any): S | undefined;
98+
99+
findLast(predicate: (value: bigint, index: number, array: this) => unknown, thisArg?: any): bigint | undefined;
100+
101+
findLastIndex(predicate: (value: bigint, index: number, array: this) => unknown, thisArg?: any): number;
102+
}

0 commit comments

Comments
 (0)