[ts] Typecheck settings/FrameworkBlackboxSettingsTab.js with TypeScript

Bug: chromium:1011811
Change-Id: I39a1107c13d897319dfd72a76e05f28cae825b0d
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2488523
Commit-Queue: Tim van der Lippe <[email protected]>
Auto-Submit: Andres Olivares <[email protected]>
Reviewed-by: Tim van der Lippe <[email protected]>
Reviewed-by: Simon Zünd <[email protected]>
diff --git a/front_end/settings/FrameworkBlackboxSettingsTab.js b/front_end/settings/FrameworkBlackboxSettingsTab.js
index 168eaa5..5442a95 100644
--- a/front_end/settings/FrameworkBlackboxSettingsTab.js
+++ b/front_end/settings/FrameworkBlackboxSettingsTab.js
@@ -2,9 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @ts-nocheck
-// TODO(crbug.com/1011811): Enable TypeScript compiler checks
-
 import * as Common from '../common/common.js';
 import * as i18n from '../i18n/i18n.js';
 import * as UI from '../ui/ui.js';
@@ -76,7 +73,7 @@
 const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
 
 /**
- * @implements {UI.ListWidget.Delegate}
+ * @implements {UI.ListWidget.Delegate<Common.Settings.RegExpSettingItem>}
  * @unrestricted
  */
 export class FrameworkBlackboxSettingsTab extends UI.Widget.VBox {
@@ -112,7 +109,9 @@
     UI.ARIAUtils.setAccessibleName(addPatternButton, i18nString(UIStrings.addFilenamePattern));
     this.contentElement.appendChild(addPatternButton);
 
-    this._setting = Common.Settings.Settings.instance().moduleSetting('skipStackFramesPattern');
+    /** @type {!Common.Settings.RegExpSetting} */
+    this._setting = /** @type {!Common.Settings.RegExpSetting} */ (
+        Common.Settings.Settings.instance().moduleSetting('skipStackFramesPattern'));
     this._setting.addChangeListener(this._settingUpdated, this);
 
     this.setDefaultFocusedElement(addPatternButton);
@@ -140,7 +139,7 @@
 
   /**
    * @override
-   * @param {*} item
+   * @param {!Common.Settings.RegExpSettingItem} item
    * @param {boolean} editable
    * @return {!Element}
    */
@@ -161,7 +160,7 @@
 
   /**
    * @override
-   * @param {*} item
+   * @param {!Common.Settings.RegExpSettingItem} item
    * @param {number} index
    */
   removeItemRequested(item, index) {
@@ -172,8 +171,8 @@
 
   /**
    * @override
-   * @param {*} item
-   * @param {!UI.ListWidget.Editor} editor
+   * @param {!Common.Settings.RegExpSettingItem} item
+   * @param {!UI.ListWidget.Editor<!Common.Settings.RegExpSettingItem>} editor
    * @param {boolean} isNew
    */
   commitEdit(item, editor, isNew) {
@@ -189,8 +188,8 @@
 
   /**
    * @override
-   * @param {*} item
-   * @return {!UI.ListWidget.Editor}
+   * @param {!Common.Settings.RegExpSettingItem} item
+   * @return {!UI.ListWidget.Editor<!Common.Settings.RegExpSettingItem>}
    */
   beginEdit(item) {
     const editor = this._createEditor();
@@ -200,7 +199,7 @@
   }
 
   /**
-   * @return {!UI.ListWidget.Editor}
+   * @return {!UI.ListWidget.Editor<!Common.Settings.RegExpSettingItem>}
    */
   _createEditor() {
     if (this._editor) {
@@ -228,7 +227,7 @@
     return editor;
 
     /**
-     * @param {*} item
+     * @param {!Common.Settings.RegExpSettingItem} item
      * @param {number} index
      * @param {!HTMLInputElement|!HTMLSelectElement} input
      * @this {FrameworkBlackboxSettingsTab}
@@ -256,17 +255,17 @@
       if (!regex) {
         return {valid: false, errorMessage: i18nString(UIStrings.patternMustBeAValidRegular)};
       }
-      return {valid: true};
+      return {valid: true, errorMessage: undefined};
     }
 
     /**
-     * @param {*} item
+     * @param {!Common.Settings.RegExpSettingItem} item
      * @param {number} index
      * @param {!HTMLInputElement|!HTMLSelectElement} input
      * @return {!UI.ListWidget.ValidatorResult}
      */
     function behaviorValidator(item, index, input) {
-      return {valid: true};
+      return {valid: true, errorMessage: undefined};
     }
   }
 }