From e163a134416038ce21aca9a3f4d7fbc4c1932b9d Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger Date: Sun, 22 Sep 2024 15:52:42 -0600 Subject: [PATCH 1/3] docs: [prefer-literal-enum-members] fix bad examples --- .../docs/rules/prefer-literal-enum-member.mdx | 17 ++++---- .../src/rules/prefer-literal-enum-member.ts | 2 +- .../prefer-literal-enum-member.shot | 39 ++++++++++--------- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx b/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx index 5f9e4ac03736..fd93b2cdc9f3 100644 --- a/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx +++ b/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx @@ -38,12 +38,14 @@ This rule reports when an enum member is given a value that is not a literal. ```ts const str = 'Test'; +const string1 = 'string1'; +const string2 = 'string2'; + enum Invalid { A = str, // Variable assignment - B = {}, // Object assignment - C = `A template literal string`, // Template literal - D = new Set(1, 2, 3), // Constructor in assignment - E = 2 + 2, // Expression assignment + B = `A template literal string that interpolates ${string1} and ${string2}`, // Template literal with interpolation + C = 2 + 2, // Expression assignment + D = C, // Assignment to another enum member } ``` @@ -52,11 +54,10 @@ enum Invalid { ```ts enum Valid { - A, + A, // No initializer; initialized with ascending integers starting from 0 B = 'TestStr', // A regular string - C = 4, // A number - D = null, - E = /some_regex/, + C = `A template literal string`, // A template literal without interpolation + D = 4, // A number } ``` diff --git a/packages/eslint-plugin/src/rules/prefer-literal-enum-member.ts b/packages/eslint-plugin/src/rules/prefer-literal-enum-member.ts index dcc31ba5742a..65336c9d2051 100644 --- a/packages/eslint-plugin/src/rules/prefer-literal-enum-member.ts +++ b/packages/eslint-plugin/src/rules/prefer-literal-enum-member.ts @@ -13,7 +13,7 @@ export default createRule({ requiresTypeChecking: false, }, messages: { - notLiteral: `Explicit enum value must only be a literal value (string, number, boolean, etc).`, + notLiteral: `Explicit enum value must only be a literal value (string or number).`, }, schema: [ { diff --git a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot index c9938b4bbb47..d07506f6df73 100644 --- a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot +++ b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot @@ -4,16 +4,18 @@ exports[`Validating rule docs prefer-literal-enum-member.mdx code examples ESLin "Incorrect const str = 'Test'; +const string1 = 'string1'; +const string2 = 'string2'; + enum Invalid { A = str, // Variable assignment - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). - B = {}, // Object assignment - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). - C = \`A template literal string\`, // Template literal - D = new Set(1, 2, 3), // Constructor in assignment - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). - E = 2 + 2, // Expression assignment - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). + B = \`A template literal string that interpolates \${string1} and \${string2}\`, // Template literal with interpolation + ~ Explicit enum value must only be a literal value (string or number). + C = 2 + 2, // Expression assignment + ~ Explicit enum value must only be a literal value (string or number). + D = C, // Assignment to another enum member + ~ Explicit enum value must only be a literal value (string or number). } " `; @@ -22,11 +24,10 @@ exports[`Validating rule docs prefer-literal-enum-member.mdx code examples ESLin "Correct enum Valid { - A, + A, // No initializer; initialized with ascending integers starting from 0 B = 'TestStr', // A regular string - C = 4, // A number - D = null, - E = /some_regex/, + C = \`A template literal string\`, // A template literal without interpolation + D = 4, // A number } " `; @@ -38,19 +39,19 @@ Options: { "allowBitwiseExpressions": true } const x = 1; enum Foo { A = x << 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). B = x >> 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). C = x >>> 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). D = x | 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). E = x & 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). F = x ^ 0, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). G = ~x, - ~ Explicit enum value must only be a literal value (string, number, boolean, etc). + ~ Explicit enum value must only be a literal value (string or number). } " `; From db94ed61c56548703b7b99734c3ad09984e224ac Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger Date: Mon, 23 Sep 2024 08:49:25 -0600 Subject: [PATCH 2/3] Update packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Josh Goldberg ✨ --- .../eslint-plugin/docs/rules/prefer-literal-enum-member.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx b/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx index fd93b2cdc9f3..31834a871a2b 100644 --- a/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx +++ b/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.mdx @@ -43,7 +43,7 @@ const string2 = 'string2'; enum Invalid { A = str, // Variable assignment - B = `A template literal string that interpolates ${string1} and ${string2}`, // Template literal with interpolation + B = `Interpolates ${string1} and ${string2}`, // Template literal with interpolation C = 2 + 2, // Expression assignment D = C, // Assignment to another enum member } From 83dbb7b0c2706b4c09af3d3ababb0c3de2f08279 Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger Date: Mon, 23 Sep 2024 09:28:18 -0600 Subject: [PATCH 3/3] snapshots --- .../prefer-literal-enum-member.shot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot index d07506f6df73..687ca0e7747a 100644 --- a/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot +++ b/packages/eslint-plugin/tests/docs-eslint-output-snapshots/prefer-literal-enum-member.shot @@ -10,7 +10,7 @@ const string2 = 'string2'; enum Invalid { A = str, // Variable assignment ~ Explicit enum value must only be a literal value (string or number). - B = \`A template literal string that interpolates \${string1} and \${string2}\`, // Template literal with interpolation + B = \`Interpolates \${string1} and \${string2}\`, // Template literal with interpolation ~ Explicit enum value must only be a literal value (string or number). C = 2 + 2, // Expression assignment ~ Explicit enum value must only be a literal value (string or number). pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy