From 42c0a2d6cd8fd0470fcddfb46ae5d044e693ea6b Mon Sep 17 00:00:00 2001 From: auvred Date: Sun, 12 May 2024 17:34:16 +0300 Subject: [PATCH 1/2] feat(eslint-plugin): deprecate prefer-ts-expect-error in favor of ban-ts-comment --- packages/eslint-plugin/src/configs/all.ts | 1 - packages/eslint-plugin/src/configs/strict-type-checked.ts | 1 - packages/eslint-plugin/src/configs/strict.ts | 1 - packages/eslint-plugin/src/rules/prefer-ts-expect-error.ts | 3 ++- packages/typescript-eslint/src/configs/all.ts | 1 - packages/typescript-eslint/src/configs/strict-type-checked.ts | 1 - packages/typescript-eslint/src/configs/strict.ts | 1 - 7 files changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/eslint-plugin/src/configs/all.ts b/packages/eslint-plugin/src/configs/all.ts index 1e7304e45a36..552bc9735c3e 100644 --- a/packages/eslint-plugin/src/configs/all.ts +++ b/packages/eslint-plugin/src/configs/all.ts @@ -139,7 +139,6 @@ export = { '@typescript-eslint/prefer-regexp-exec': 'error', '@typescript-eslint/prefer-return-this-type': 'error', '@typescript-eslint/prefer-string-starts-ends-with': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', '@typescript-eslint/promise-function-async': 'error', '@typescript-eslint/require-array-sort-compare': 'error', 'require-await': 'off', diff --git a/packages/eslint-plugin/src/configs/strict-type-checked.ts b/packages/eslint-plugin/src/configs/strict-type-checked.ts index 26d8d9698812..c810a14135b3 100644 --- a/packages/eslint-plugin/src/configs/strict-type-checked.ts +++ b/packages/eslint-plugin/src/configs/strict-type-checked.ts @@ -71,7 +71,6 @@ export = { '@typescript-eslint/prefer-promise-reject-errors': 'error', '@typescript-eslint/prefer-reduce-type-parameter': 'error', '@typescript-eslint/prefer-return-this-type': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', 'require-await': 'off', '@typescript-eslint/require-await': 'error', '@typescript-eslint/restrict-plus-operands': [ diff --git a/packages/eslint-plugin/src/configs/strict.ts b/packages/eslint-plugin/src/configs/strict.ts index dbf57cc2c3f6..9c51d5c47348 100644 --- a/packages/eslint-plugin/src/configs/strict.ts +++ b/packages/eslint-plugin/src/configs/strict.ts @@ -40,7 +40,6 @@ export = { '@typescript-eslint/no-var-requires': 'error', '@typescript-eslint/prefer-as-const': 'error', '@typescript-eslint/prefer-literal-enum-member': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', '@typescript-eslint/triple-slash-reference': 'error', '@typescript-eslint/unified-signatures': 'error', }, diff --git a/packages/eslint-plugin/src/rules/prefer-ts-expect-error.ts b/packages/eslint-plugin/src/rules/prefer-ts-expect-error.ts index 7dc15dc44b7e..6ae1f11720e1 100644 --- a/packages/eslint-plugin/src/rules/prefer-ts-expect-error.ts +++ b/packages/eslint-plugin/src/rules/prefer-ts-expect-error.ts @@ -10,9 +10,10 @@ export default createRule<[], MessageIds>({ name: 'prefer-ts-expect-error', meta: { type: 'problem', + deprecated: true, + replacedBy: ['@typescript-eslint/ban-ts-comment'], docs: { description: 'Enforce using `@ts-expect-error` over `@ts-ignore`', - recommended: 'strict', }, fixable: 'code', messages: { diff --git a/packages/typescript-eslint/src/configs/all.ts b/packages/typescript-eslint/src/configs/all.ts index efe0d16fceb8..e539f8976df2 100644 --- a/packages/typescript-eslint/src/configs/all.ts +++ b/packages/typescript-eslint/src/configs/all.ts @@ -148,7 +148,6 @@ export default ( '@typescript-eslint/prefer-regexp-exec': 'error', '@typescript-eslint/prefer-return-this-type': 'error', '@typescript-eslint/prefer-string-starts-ends-with': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', '@typescript-eslint/promise-function-async': 'error', '@typescript-eslint/require-array-sort-compare': 'error', 'require-await': 'off', diff --git a/packages/typescript-eslint/src/configs/strict-type-checked.ts b/packages/typescript-eslint/src/configs/strict-type-checked.ts index ad62ee749e25..5403dd0fb89e 100644 --- a/packages/typescript-eslint/src/configs/strict-type-checked.ts +++ b/packages/typescript-eslint/src/configs/strict-type-checked.ts @@ -80,7 +80,6 @@ export default ( '@typescript-eslint/prefer-promise-reject-errors': 'error', '@typescript-eslint/prefer-reduce-type-parameter': 'error', '@typescript-eslint/prefer-return-this-type': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', 'require-await': 'off', '@typescript-eslint/require-await': 'error', '@typescript-eslint/restrict-plus-operands': [ diff --git a/packages/typescript-eslint/src/configs/strict.ts b/packages/typescript-eslint/src/configs/strict.ts index 1750e9be0389..71615896c4dd 100644 --- a/packages/typescript-eslint/src/configs/strict.ts +++ b/packages/typescript-eslint/src/configs/strict.ts @@ -49,7 +49,6 @@ export default ( '@typescript-eslint/no-var-requires': 'error', '@typescript-eslint/prefer-as-const': 'error', '@typescript-eslint/prefer-literal-enum-member': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', '@typescript-eslint/triple-slash-reference': 'error', '@typescript-eslint/unified-signatures': 'error', }, From 591fefae36ccb6bc78f660fee456ba5537eba171 Mon Sep 17 00:00:00 2001 From: auvred Date: Mon, 13 May 2024 10:39:12 +0300 Subject: [PATCH 2/2] docs: add deprecation notice --- .../docs/rules/prefer-ts-expect-error.mdx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.mdx b/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.mdx index 17ade492147b..1d0614fa84fa 100644 --- a/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.mdx +++ b/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.mdx @@ -9,6 +9,16 @@ import TabItem from '@theme/TabItem'; > > See **https://typescript-eslint.io/rules/prefer-ts-expect-error** for documentation. +:::danger Deprecated + +This rule has been deprecated in favor of [`@typescript-eslint/ban-ts-comment`](./ban-ts-comment.mdx). +This rule (`@typescript-eslint/prefer-ts-expect-error`) will be removed in a future major version of typescript-eslint. + +When it was first created, `@typescript-eslint/ban-ts-comment` rule was only responsible for suggesting to remove `@ts-ignore` directive. +It was later updated to suggest replacing `@ts-ignore` with `@ts-expect-error` directive, so that it replaces `@typescript-eslint/prefer-ts-expect-error` entirely. + +::: + TypeScript allows you to suppress all errors on a line by placing a comment starting with `@ts-ignore` or `@ts-expect-error` immediately before the erroring line. The two directives work the same, except `@ts-expect-error` causes a type error if placed before a line that's not erroring in the first place.