Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Bug: [no-duplicate-enum-values] doesn't handle explicitly signed numbers #11722

@undsoft

Description

@undsoft

Before You File a Bug Report Please Confirm You Have Done The Following...

  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.
  • I have searched for related issues and found none that matched my issue.
  • I have read the FAQ and my problem is not listed.

Playground Link

https://typescript-eslint.io/play/#ts=5.9.2&fileType=.tsx&code=KYOwrgtgBAKsDOAXKBvAUFKB6LUDKADgJYDGAnlOBAEbABO8GUAskePAFr0D2UAvFAC0ABgA0TVuy51uAJn5CxEtmHgB5EMAWCAjOMyTVG4PIG79UAAoAbI5oUBqPUxt2Tj55lecejpV9sfGVMoByUmHCgANQBDECJraxjKSFoGJgAhbjo2AHMAOVT6BQBmCyyckAKiuhCytABfIA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQAIBcBPABxQGNoBLY-AWhXkoDt8B6Jge1oBNZjGyAQ3yJ6TWAFtaAN0HxYKdFETRoHaJHBgAviG1A&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eAcgK6qoDCAFutAGsylBm3TgwAXxCSgA&tokens=false

Repro Code

enum Test {
  // Spicy numbers – no errors
  MinusZero = -0,
  MinusZero2 = -0,
  MinusOne = -1,
  MinusOne2 = -1,
  PlusOne = +1,
  PlusOne2 = +1,
  PlusZero = +0,
  PlusZero2 = +0,

  // Vanilla numbers – yes errors
  BoringNumber = 1,
  BoringNumber2 = 1,
}

ESLint Config

module.exports = {
  parser: "@typescript-eslint/parser",
  rules: {
    "@typescript-eslint/no-duplicate-enum-values": "error"
  },
};

tsconfig

{
  "compilerOptions": {
    // ...
  }
}

Expected Result

  • +Something numbers should be considered equal to their unsigned counterparts. E.g. +1 = 1.
  • Minus numbers should be checked against other minus numbers.
  • -0 and 0/+0 should be considered to be different values, because math.

Actual Result

Rule doesn't lint numbers if they have + or - in front of them.

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issuebugSomething isn't workingpackage: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions