From 9031d1d0456b630d5f3fa0cd87d396505234f23e Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 9 Sep 2025 15:06:30 +0200 Subject: [PATCH 1/3] Accept type argument to getElementById This provides an alternative to the common pattern of `document.getElementById("...") as HTMLWhateverElement` which casts away the possibility of `null`, consequently hiding a potential type error. --- inputfiles/overridingTypes.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index fc9172285..03f2ce844 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -654,7 +654,7 @@ "getElementById": { "name": "getElementById", "overrideSignatures": [ - "getElementById(elementId: string): HTMLElement | null" + "getElementById(elementId: string): T | null" ] }, "getElementsByTagNameNS": { From 1efc91190752c20281b2dc11886871616f3a8f07 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 9 Sep 2025 15:13:36 +0200 Subject: [PATCH 2/3] accept new baselines --- baselines/dom.generated.d.ts | 2 +- baselines/ts5.5/dom.generated.d.ts | 2 +- baselines/ts5.6/dom.generated.d.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 604beb99a..7ba1700eb 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -10577,7 +10577,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): HTMLElement | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index d5ca4f096..cc79ee66f 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -10569,7 +10569,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): HTMLElement | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * diff --git a/baselines/ts5.6/dom.generated.d.ts b/baselines/ts5.6/dom.generated.d.ts index 23672a6c7..67a9202fd 100644 --- a/baselines/ts5.6/dom.generated.d.ts +++ b/baselines/ts5.6/dom.generated.d.ts @@ -10577,7 +10577,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): HTMLElement | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * From ec20095fa11dccb48df4cf53a431a520c86eb6cb Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 9 Sep 2025 18:08:07 +0200 Subject: [PATCH 3/3] extends HTMLElement --- baselines/dom.generated.d.ts | 2 +- baselines/ts5.5/dom.generated.d.ts | 2 +- baselines/ts5.6/dom.generated.d.ts | 2 +- inputfiles/overridingTypes.jsonc | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 7ba1700eb..a264d2368 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -10577,7 +10577,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): T | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index cc79ee66f..af1c13085 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -10569,7 +10569,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): T | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * diff --git a/baselines/ts5.6/dom.generated.d.ts b/baselines/ts5.6/dom.generated.d.ts index 67a9202fd..61d873d7d 100644 --- a/baselines/ts5.6/dom.generated.d.ts +++ b/baselines/ts5.6/dom.generated.d.ts @@ -10577,7 +10577,7 @@ interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEve * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */ exitPointerLock(): void; - getElementById(elementId: string): T | null; + getElementById(elementId: string): T | null; /** * The **`getElementsByClassName`** method of Document interface returns an array-like object of all child elements which have all of the given class name(s). * diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 03f2ce844..4afde6c0b 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -654,7 +654,7 @@ "getElementById": { "name": "getElementById", "overrideSignatures": [ - "getElementById(elementId: string): T | null" + "getElementById(elementId: string): T | null" ] }, "getElementsByTagNameNS": {