diff --git a/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts b/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts index a1485e2435f..b769e05d926 100644 --- a/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts +++ b/packages/eslint-plugin-internal/src/rules/no-poorly-typed-ts-props.ts @@ -39,6 +39,7 @@ export default createRule({ "Enforces rules don't use TS API properties with known bad type definitions", category: 'Possible Errors', recommended: 'error', + suggestion: true, requiresTypeChecking: true, }, fixable: 'code', diff --git a/packages/eslint-plugin/src/rules/no-empty-interface.ts b/packages/eslint-plugin/src/rules/no-empty-interface.ts index d279e9bd4f6..817d1232be2 100644 --- a/packages/eslint-plugin/src/rules/no-empty-interface.ts +++ b/packages/eslint-plugin/src/rules/no-empty-interface.ts @@ -19,6 +19,7 @@ export default util.createRule({ description: 'Disallow the declaration of empty interfaces', category: 'Best Practices', recommended: 'error', + suggestion: true, }, fixable: 'code', messages: { diff --git a/packages/eslint-plugin/src/rules/no-explicit-any.ts b/packages/eslint-plugin/src/rules/no-explicit-any.ts index 795dae01725..4e6b8c34fc1 100644 --- a/packages/eslint-plugin/src/rules/no-explicit-any.ts +++ b/packages/eslint-plugin/src/rules/no-explicit-any.ts @@ -21,6 +21,7 @@ export default util.createRule({ description: 'Disallow usage of the `any` type', category: 'Best Practices', recommended: 'warn', + suggestion: true, }, fixable: 'code', messages: { diff --git a/packages/eslint-plugin/src/rules/no-floating-promises.ts b/packages/eslint-plugin/src/rules/no-floating-promises.ts index 04da1a9b8c4..615f88f25df 100644 --- a/packages/eslint-plugin/src/rules/no-floating-promises.ts +++ b/packages/eslint-plugin/src/rules/no-floating-promises.ts @@ -24,6 +24,7 @@ export default util.createRule({ description: 'Requires Promise-like values to be handled appropriately', category: 'Best Practices', recommended: false, + suggestion: true, requiresTypeChecking: true, }, messages: { diff --git a/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts b/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts index 2487c975df4..b3704b8d5dd 100644 --- a/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts +++ b/packages/eslint-plugin/src/rules/no-non-null-asserted-optional-chain.ts @@ -12,6 +12,7 @@ export default util.createRule<[], MessageIds>({ 'Disallows using a non-null assertion after an optional chain expression', category: 'Possible Errors', recommended: false, + suggestion: true, }, messages: { noNonNullOptionalChain: diff --git a/packages/eslint-plugin/src/rules/no-non-null-assertion.ts b/packages/eslint-plugin/src/rules/no-non-null-assertion.ts index ef268d7a4e2..143b889b17c 100644 --- a/packages/eslint-plugin/src/rules/no-non-null-assertion.ts +++ b/packages/eslint-plugin/src/rules/no-non-null-assertion.ts @@ -15,6 +15,7 @@ export default util.createRule<[], MessageIds>({ 'Disallows non-null assertions using the `!` postfix operator', category: 'Stylistic Issues', recommended: 'warn', + suggestion: true, }, messages: { noNonNull: 'Forbidden non-null assertion.', diff --git a/packages/eslint-plugin/src/rules/prefer-as-const.ts b/packages/eslint-plugin/src/rules/prefer-as-const.ts index cbce99462d1..9fb619b74b5 100644 --- a/packages/eslint-plugin/src/rules/prefer-as-const.ts +++ b/packages/eslint-plugin/src/rules/prefer-as-const.ts @@ -13,6 +13,7 @@ export default util.createRule({ description: 'Prefer usage of `as const` over literal type', category: 'Best Practices', recommended: false, + suggestion: true, }, fixable: 'code', messages: { diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index d5b35e8dd13..3c616ded75d 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -24,6 +24,7 @@ export default util.createRule({ 'Enforce the usage of the nullish coalescing operator instead of logical chaining', category: 'Best Practices', recommended: false, + suggestion: true, requiresTypeChecking: true, }, fixable: 'code', diff --git a/packages/eslint-plugin/src/rules/prefer-optional-chain.ts b/packages/eslint-plugin/src/rules/prefer-optional-chain.ts index 7c858008984..6adc3f1d9c8 100644 --- a/packages/eslint-plugin/src/rules/prefer-optional-chain.ts +++ b/packages/eslint-plugin/src/rules/prefer-optional-chain.ts @@ -48,6 +48,7 @@ export default util.createRule({ 'Prefer using concise optional chain expressions instead of chained logical ands', category: 'Best Practices', recommended: false, + suggestion: true, }, fixable: 'code', messages: { diff --git a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts index c559fc71cc9..d9e14bcf331 100644 --- a/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts +++ b/packages/eslint-plugin/src/rules/switch-exhaustiveness-check.ts @@ -17,6 +17,7 @@ export default createRule({ description: 'Exhaustiveness checking in switch with union type', category: 'Best Practices', recommended: false, + suggestion: true, requiresTypeChecking: true, }, schema: [], diff --git a/packages/experimental-utils/src/ts-eslint/Rule.ts b/packages/experimental-utils/src/ts-eslint/Rule.ts index 61f9cd7611e..12a3bed1f75 100644 --- a/packages/experimental-utils/src/ts-eslint/Rule.ts +++ b/packages/experimental-utils/src/ts-eslint/Rule.ts @@ -28,6 +28,10 @@ interface RuleMetaDataDocs { * The URL of the rule's docs */ url: string; + /** + * Specifies whether the rule can return suggestions. + */ + suggestion?: boolean; /** * Does the rule require us to create a full TypeScript Program in order for it * to type-check code. This is only used for documentation purposes.