[Eslint] Enable no-empty-object-type
The {} type in TypeScript does not represent a empty object as one may
expect this makes it confusing to work with and use properly.
https://typescript-eslint.io/rules/no-empty-object-type/
Bug: 397260638
Change-Id: Ic2cc515ac729a76d652fca829082bb76c8b1f913
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6327458
Auto-Submit: Nikolay Vitkov <[email protected]>
Reviewed-by: Mathias Bynens <[email protected]>
Commit-Queue: Jack Franklin <[email protected]>
Reviewed-by: Jack Franklin <[email protected]>
Commit-Queue: Nikolay Vitkov <[email protected]>
diff --git a/eslint.config.mjs b/eslint.config.mjs
index c1131c1..d624e16 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -13,13 +13,13 @@
import mochaPlugin from 'eslint-plugin-mocha';
import rulesdirPlugin from 'eslint-plugin-rulesdir';
import globals from 'globals';
-import {join} from 'path';
+import { join } from 'path';
rulesdirPlugin.RULES_DIR = join(
- import.meta.dirname,
- 'scripts',
- 'eslint_rules',
- 'lib',
+ import.meta.dirname,
+ 'scripts',
+ 'eslint_rules',
+ 'lib',
);
/**
@@ -316,11 +316,11 @@
parserOptions: {
allowAutomaticSingleRunInference: true,
project: join(
- import.meta.dirname,
- 'config',
- 'typescript',
- 'tsconfig.eslint.json',
- ),
+ import.meta.dirname,
+ 'config',
+ 'typescript',
+ 'tsconfig.eslint.json',
+ ),
},
},
@@ -542,6 +542,13 @@
'@typescript-eslint/no-unsafe-function-type': 'error',
+ '@typescript-eslint/no-empty-object-type': [
+ 'error',
+ {
+ allowInterfaces: 'with-single-extends',
+ },
+ ],
+
'rulesdir/no-underscored-properties': 'error',
'rulesdir/inline-type-imports': 'error',
@@ -550,12 +557,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',
},
],
@@ -827,7 +834,7 @@
rules: {
// Not a useful rule for .d.ts files where we are
// representing an existing module.
- 'import/no-default-export': 'off'
- }
- }
+ 'import/no-default-export': 'off',
+ },
+ },
];