From b2cc064ac3db65af4fbc7f194c7c4e1a72b26885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20LES=C3=89N=C3=89CHAL?= Date: Thu, 19 Dec 2024 22:21:43 +0100 Subject: [PATCH] Fix #52: Remove incorrect type guard of `exists()` from `mw.Map` --- mw/Map.d.ts | 6 +++--- test-d/regression/52.test-d.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 test-d/regression/52.test-d.ts diff --git a/mw/Map.d.ts b/mw/Map.d.ts index f91b62b..2f65789 100644 --- a/mw/Map.d.ts +++ b/mw/Map.d.ts @@ -28,8 +28,8 @@ export interface ExtensibleMap, TX = unknown> * @returns True if the key exists * @see https://doc.wikimedia.org/mediawiki-core/master/js/mw.Map.html#.exists */ - exists(selection: S): selection is S; - exists(selection: S): selection is S; + exists(selection: keyof V): boolean; + exists(selection: string): boolean; /** * Get the value of one or more keys. @@ -95,7 +95,7 @@ declare global { * @returns True if the key exists * @see https://doc.wikimedia.org/mediawiki-core/master/js/mw.Map.html#.exists */ - exists(selection: S): selection is S; + exists(selection: keyof V): boolean; /** * Get the value of one or more keys. diff --git a/test-d/regression/52.test-d.ts b/test-d/regression/52.test-d.ts new file mode 100644 index 0000000..d68ef90 --- /dev/null +++ b/test-d/regression/52.test-d.ts @@ -0,0 +1,11 @@ +// https://github.com/wikimedia-gadgets/types-mediawiki/issues/52 +import { expectType } from "tsd"; + +declare const map: mw.Map; +declare const k: string; + +if (map.exists(k)) { + expectType(k); +} else { + expectType(k); +}