Add `noImplicitOverride`

`noImplicitOverride` guarantees type safety when overriding a class method. This also improves refactoring behavior.

The primary motivation for `noImplicitOverride` is for using with Lit elements where overriding methods is important.

Bug: 1402569
Change-Id: Ia095c38a6d1fc160f9b08c350d6f7248daab38a4
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4443322
Reviewed-by: Jack Franklin <[email protected]>
Commit-Queue: Randolf Jung <[email protected]>
diff --git a/front_end/ui/components/buttons/Button.ts b/front_end/ui/components/buttons/Button.ts
index 6138336..23441bf 100644
--- a/front_end/ui/components/buttons/Button.ts
+++ b/front_end/ui/components/buttons/Button.ts
@@ -154,7 +154,7 @@
     void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender);
   }
 
-  set title(title: string) {
+  override set title(title: string) {
     this.#props.title = title;
     void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender);
   }
@@ -179,7 +179,7 @@
     this.toggleAttribute('disabled', disabled);
   }
 
-  focus(): void {
+  override focus(): void {
     this.#shadow.querySelector('button')?.focus();
   }