[eslint] Enable no-useless-constructor

Bug: none
Change-Id: I9410720da570f25a608167cba1ec4b458ac0b4c8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6586877
Auto-Submit: Nikolay Vitkov <[email protected]>
Commit-Queue: Benedikt Meurer <[email protected]>
Reviewed-by: Benedikt Meurer <[email protected]>
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 9ebeb25..0c03461 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -7,9 +7,9 @@
 import importPlugin from 'eslint-plugin-import';
 import jsdocPlugin from 'eslint-plugin-jsdoc';
 import mochaPlugin from 'eslint-plugin-mocha';
-import {defineConfig, globalIgnores} from 'eslint/config';
+import { defineConfig, globalIgnores } from 'eslint/config';
 import globals from 'globals';
-import {join} from 'path';
+import { join } from 'path';
 import typescriptEslint from 'typescript-eslint';
 
 import rulesdirPlugin from './scripts/eslint_rules/rules-dir.mjs';
@@ -193,7 +193,7 @@
       radix: 'error',
       'valid-typeof': 'error',
       'no-return-assign': ['error', 'always'],
-      'no-implicit-coercion': ['error', {allow: ['!!']}],
+      'no-implicit-coercion': ['error', { allow: ['!!'] }],
 
       'no-array-constructor': 'error',
 
@@ -251,6 +251,7 @@
       // no-implicit-globals will prevent accidental globals
       'no-implicit-globals': 'off',
       'no-unused-private-class-members': 'error',
+      'no-useless-constructor': 'error',
 
       // Sort imports first
       'import/first': 'error',
@@ -304,11 +305,11 @@
       parserOptions: {
         allowAutomaticSingleRunInference: true,
         project: join(
-            import.meta.dirname,
-            'config',
-            'typescript',
-            'tsconfig.eslint.json',
-            ),
+          import.meta.dirname,
+          'config',
+          'typescript',
+          'tsconfig.eslint.json',
+        ),
       },
     },
 
@@ -542,6 +543,9 @@
 
       '@typescript-eslint/consistent-indexed-object-style': 'error',
 
+      'no-useless-constructor': 'off',
+      '@typescript-eslint/no-useless-constructor': 'error',
+
       'rulesdir/no-underscored-properties': 'error',
       'rulesdir/inline-type-imports': 'error',
 
@@ -550,12 +554,12 @@
         {
           // Enforce that any import of models/trace/trace.js names the import Trace.
           modulePath: join(
-              import.meta.dirname,
-              'front_end',
-              'models',
-              'trace',
-              'trace.js',
-              ),
+            import.meta.dirname,
+            'front_end',
+            'models',
+            'trace',
+            'trace.js',
+          ),
           importName: 'Trace',
         },
       ],