From fd17e5dad47df73dead68307dd597a9787a9758c Mon Sep 17 00:00:00 2001 From: ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Date: Mon, 16 Dec 2019 12:31:26 +0100 Subject: [PATCH] =?UTF-8?q?feat(webidl=E2=80=91conversions):=20Update?= =?UTF-8?q?=C2=A0to=C2=A0v5.0=20(#41006)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(webidl‑conversions): Update to v5.0 * test(webidl‑conversions): Work around TS ≤3.5 bug * test(webidl‑conversions): Fix tests on TS ≤3.5 --- types/webidl-conversions/index.d.ts | 6 ++---- .../webidl-conversions/webidl-conversions-tests.ts | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/types/webidl-conversions/index.d.ts b/types/webidl-conversions/index.d.ts index fedd3595ef..92919dfe87 100644 --- a/types/webidl-conversions/index.d.ts +++ b/types/webidl-conversions/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for webidl-conversions 4.0 +// Type definitions for webidl-conversions 5.0 // Project: https://github.com/jsdom/webidl-conversions#readme // Definitions by: ExE Boss // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -52,9 +52,7 @@ declare const WebIDLConversions: { ByteString(V: any, opts?: WebIDLConversions.StringOptions): string; USVString(V: any, opts?: WebIDLConversions.StringOptions): string; - object(V: any, opts?: WebIDLConversions.Options): object; - Error(V: any, opts?: WebIDLConversions.Options): Error; - + object(V: V, opts?: WebIDLConversions.Options): V extends object ? V : V & object; ArrayBuffer(V: any, opts?: WebIDLConversions.Options): ArrayBuffer; DataView(V: any, opts?: WebIDLConversions.Options): DataView; diff --git a/types/webidl-conversions/webidl-conversions-tests.ts b/types/webidl-conversions/webidl-conversions-tests.ts index 3ae2767a93..08719c3d5b 100644 --- a/types/webidl-conversions/webidl-conversions-tests.ts +++ b/types/webidl-conversions/webidl-conversions-tests.ts @@ -7,6 +7,12 @@ const options: conversions.Options = ((): conversions.Options => { return {}; })(); +/** + * The `expectType` function from https://www.npmjs.com/package/tsd, + * except instead of returning `void`, it returns `T`. + */ +declare function expectType(value: T): T; + conversions.any(any); // $ExpectType any conversions.any(unknown); // $ExpectType unknown conversions.any(options); // $ExpectType Options @@ -38,8 +44,12 @@ conversions.DOMString(any, options); // $ExpectType string conversions.ByteString(any, options); // $ExpectType string conversions.USVString(any, options); // $ExpectType string -conversions.object(any, options); // $ExpectType object -conversions.Error(any, options); // $ExpectType Error +conversions.object(any, options); // $ExpectType any +conversions.object(unknown, options); // $ExpectType object +expectType(conversions.object(null, options)); +expectType(conversions.object('string', options)); +expectType(conversions.object(123, options)); +conversions.object({}, options); // $ExpectType {} conversions.ArrayBuffer(any, options); // $ExpectType ArrayBuffer conversions.DataView(any, options); // $ExpectType DataView