Co-authored-by: saschanaz <saschanaz@users.noreply.github.com>
This commit is contained in:
Conor Linehan 2023-03-12 19:43:26 +00:00 коммит произвёл GitHub
Родитель e6154ef49c
Коммит 8e5f5db964
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 44 добавлений и 8 удалений

4
baselines/dom.generated.d.ts поставляемый
Просмотреть файл

@ -17776,7 +17776,7 @@ interface WindowOrWorkerGlobalScope {
reportError(e: any): void;
setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
structuredClone(value: any, options?: StructuredSerializeOptions): any;
structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
}
interface WindowSessionStorage {
@ -19193,7 +19193,7 @@ declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
declare var sessionStorage: Storage;
declare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;

4
baselines/serviceworker.generated.d.ts поставляемый
Просмотреть файл

@ -5751,7 +5751,7 @@ interface WindowOrWorkerGlobalScope {
reportError(e: any): void;
setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
structuredClone(value: any, options?: StructuredSerializeOptions): any;
structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
}
interface WorkerGlobalScopeEventMap {
@ -6129,7 +6129,7 @@ declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
declare function addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
declare function removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;

4
baselines/sharedworker.generated.d.ts поставляемый
Просмотреть файл

@ -5602,7 +5602,7 @@ interface WindowOrWorkerGlobalScope {
reportError(e: any): void;
setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
structuredClone(value: any, options?: StructuredSerializeOptions): any;
structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
}
interface WorkerEventMap extends AbstractWorkerEventMap {
@ -6140,7 +6140,7 @@ declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
declare function addEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
declare function removeEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;

4
baselines/webworker.generated.d.ts поставляемый
Просмотреть файл

@ -6092,7 +6092,7 @@ interface WindowOrWorkerGlobalScope {
reportError(e: any): void;
setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
structuredClone(value: any, options?: StructuredSerializeOptions): any;
structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
}
interface WorkerEventMap extends AbstractWorkerEventMap {
@ -6650,7 +6650,7 @@ declare function queueMicrotask(callback: VoidFunction): void;
declare function reportError(e: any): void;
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
declare function structuredClone(value: any, options?: StructuredSerializeOptions): any;
declare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
declare function cancelAnimationFrame(handle: number): void;
declare function requestAnimationFrame(callback: FrameRequestCallback): number;
declare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;

Просмотреть файл

@ -252,6 +252,25 @@
}
}
},
"structuredClone": {
"signature": {
"0": {
"typeParameters": [
{
"name": "T",
"default": "any"
}
],
"param": [
{
"name": "value",
"overrideType": "T"
}
],
"overrideType": "T"
}
}
},
"clearTimeout": {
"signature": {
"0": {

Просмотреть файл

@ -0,0 +1,17 @@
function assertType<T>(_x: T) {}
const toBeCloned = {
name: "abc",
address: "test",
age: 30,
info: {
url: "https://example.com",
},
} as const;
const nonMatchingType = { foo: "bar" } as const;
const clone = structuredClone(toBeCloned);
assertType<typeof toBeCloned>(clone);
// @ts-expect-error non matching type
assertType<typeof nonMatchingType>(clone);