From 2b1568168974d6b3232cc96ff6f1ebc92a87da3c Mon Sep 17 00:00:00 2001 From: Andrew Kazakov Date: Mon, 14 Jul 2025 13:36:29 +0300 Subject: [PATCH 1/3] fix: disallow extra properties in rule options --- packages/eslint-plugin/src/rules/prefer-destructuring.ts | 1 + packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/eslint-plugin/src/rules/prefer-destructuring.ts b/packages/eslint-plugin/src/rules/prefer-destructuring.ts index 5934573e3350..f1aa155b673c 100644 --- a/packages/eslint-plugin/src/rules/prefer-destructuring.ts +++ b/packages/eslint-plugin/src/rules/prefer-destructuring.ts @@ -64,6 +64,7 @@ const schema: readonly JSONSchema4[] = [ 'Whether to enforce destructuring that use a different variable name than the property name.', }, }, + additionalProperties: false, }, ]; diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index 3e8c5914fa9f..8c60b39ef8d0 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -142,6 +142,7 @@ export default createRule({ description: 'Ignore string primitive types.', }, }, + additionalProperties: false, }, { type: 'boolean', From 1945e31164fb2bf6a46b1cd18fc8812fc8e87c25 Mon Sep 17 00:00:00 2001 From: Andrew Kazakov Date: Mon, 14 Jul 2025 14:29:24 +0300 Subject: [PATCH 2/3] chore: regenerate schema snapshots --- .../tests/schema-snapshots/prefer-destructuring.shot | 2 +- .../tests/schema-snapshots/prefer-nullish-coalescing.shot | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/tests/schema-snapshots/prefer-destructuring.shot b/packages/eslint-plugin/tests/schema-snapshots/prefer-destructuring.shot index 61036ced3fda..d99ed3d30301 100644 --- a/packages/eslint-plugin/tests/schema-snapshots/prefer-destructuring.shot +++ b/packages/eslint-plugin/tests/schema-snapshots/prefer-destructuring.shot @@ -49,6 +49,7 @@ ] }, { + "additionalProperties": false, "properties": { "enforceForDeclarationWithTypeAnnotation": { "description": "Whether to enforce destructuring on variable declarations with type annotations.", @@ -88,6 +89,5 @@ type Options = [ enforceForDeclarationWithTypeAnnotation?: boolean; /** Whether to enforce destructuring that use a different variable name than the property name. */ enforceForRenamedProperties?: boolean; - [k: string]: unknown; }, ]; diff --git a/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot b/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot index 18b7da68ac53..5a8ea93c4ed6 100644 --- a/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot +++ b/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot @@ -29,6 +29,7 @@ "description": "Whether to ignore all (`true`) or some (an object with properties) primitive types.", "oneOf": [ { + "additionalProperties": false, "description": "Which primitives types may be ignored.", "properties": { "bigint": { @@ -95,7 +96,6 @@ type Options = [ number?: boolean; /** Ignore string primitive types. */ string?: boolean; - [k: string]: unknown; } /** Ignore all primitive types. */ | true; From 4ba7bb5cc1a47121dab69415fd8608af6d96e753 Mon Sep 17 00:00:00 2001 From: Andrew Kazakov Date: Tue, 15 Jul 2025 22:34:28 +0300 Subject: [PATCH 3/3] fix: linter errors --- packages/eslint-plugin/src/rules/prefer-destructuring.ts | 2 +- packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/prefer-destructuring.ts b/packages/eslint-plugin/src/rules/prefer-destructuring.ts index f1aa155b673c..a3afb125a301 100644 --- a/packages/eslint-plugin/src/rules/prefer-destructuring.ts +++ b/packages/eslint-plugin/src/rules/prefer-destructuring.ts @@ -52,6 +52,7 @@ const schema: readonly JSONSchema4[] = [ }, { type: 'object', + additionalProperties: false, properties: { enforceForDeclarationWithTypeAnnotation: { type: 'boolean', @@ -64,7 +65,6 @@ const schema: readonly JSONSchema4[] = [ 'Whether to enforce destructuring that use a different variable name than the property name.', }, }, - additionalProperties: false, }, ]; diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index 8c60b39ef8d0..d611e7b079a9 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -123,6 +123,7 @@ export default createRule({ oneOf: [ { type: 'object', + additionalProperties: false, description: 'Which primitives types may be ignored.', properties: { bigint: { @@ -142,7 +143,6 @@ export default createRule({ description: 'Ignore string primitive types.', }, }, - additionalProperties: false, }, { type: 'boolean',