diff --git a/.markdownlint.json b/.markdownlint.json index f5b6d46d80e5..71abe85dea29 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -73,7 +73,8 @@ "summary", "sup", "TabItem", - "Tabs" + "Tabs", + "TypeScriptOverlap" ] }, // MD034/no-bare-urls - Bare URL used diff --git a/packages/eslint-plugin/docs/rules/no-dupe-class-members.md b/packages/eslint-plugin/docs/rules/no-dupe-class-members.md index 3b0f00d33bc9..cc67ddad93a7 100644 --- a/packages/eslint-plugin/docs/rules/no-dupe-class-members.md +++ b/packages/eslint-plugin/docs/rules/no-dupe-class-members.md @@ -6,5 +6,9 @@ description: 'Disallow duplicate class members.' > > See **https://typescript-eslint.io/rules/no-dupe-class-members** for documentation. +import TypeScriptOverlap from "@site/src/components/TypeScriptOverlap"; + + + This rule extends the base [`eslint/no-dupe-class-members`](https://eslint.org/docs/rules/no-dupe-class-members) rule. It adds support for TypeScript's method overload definitions. diff --git a/packages/eslint-plugin/docs/rules/no-invalid-this.md b/packages/eslint-plugin/docs/rules/no-invalid-this.md index 9ce45891fb5d..a9e8bcaeb52f 100644 --- a/packages/eslint-plugin/docs/rules/no-invalid-this.md +++ b/packages/eslint-plugin/docs/rules/no-invalid-this.md @@ -6,5 +6,9 @@ description: 'Disallow `this` keywords outside of classes or class-like objects. > > See **https://typescript-eslint.io/rules/no-invalid-this** for documentation. +import TypeScriptOverlap from "@site/src/components/TypeScriptOverlap"; + + + This rule extends the base [`eslint/no-invalid-this`](https://eslint.org/docs/rules/no-invalid-this) rule. It adds support for TypeScript's `this` parameters. diff --git a/packages/eslint-plugin/docs/rules/no-redeclare.md b/packages/eslint-plugin/docs/rules/no-redeclare.md index 5496aa9053f5..6d3ffe97e5bb 100644 --- a/packages/eslint-plugin/docs/rules/no-redeclare.md +++ b/packages/eslint-plugin/docs/rules/no-redeclare.md @@ -6,6 +6,10 @@ description: 'Disallow variable redeclaration.' > > See **https://typescript-eslint.io/rules/no-redeclare** for documentation. +import TypeScriptOverlap from "@site/src/components/TypeScriptOverlap"; + + + This rule extends the base [`eslint/no-redeclare`](https://eslint.org/docs/rules/no-redeclare) rule. It adds support for TypeScript function overloads, and declaration merging. diff --git a/packages/website/src/components/TypeScriptOverlap/index.tsx b/packages/website/src/components/TypeScriptOverlap/index.tsx new file mode 100644 index 000000000000..57bc37513386 --- /dev/null +++ b/packages/website/src/components/TypeScriptOverlap/index.tsx @@ -0,0 +1,32 @@ +import Admonition from '@theme/Admonition'; +import React from 'react'; + +export default function TypeScriptOverlap({ + strict, +}: { + strict?: string; +}): React.JSX.Element { + return ( +
+ +

+ The code problem checked by this ESLint rule is automatically checked + by the TypeScript compiler. Thus, it is not recommended to turn on + this rule in new TypeScript projects. You only need to enable this + rule if you prefer the ESLint error messages over the TypeScript + compiler error messages. +

+ {strict === undefined ? ( + <> + ) : ( +

+ (Note that technically, TypeScript will only catch this if you have + the strict or noImplicitThis flags + enabled. These are enabled in most TypeScript projects, since they + are considered to be best practice.) +

+ )} +
+
+ ); +}