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

Skip to content

Bug: @typescript-eslint/no-extra-parens applying erroneously to class extensions #5899

Closed
@phm07

Description

@phm07

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=4.8.4&sourceType=module&code=MYGwhgzhAECiBuBTAdgF1gWwJatYgTtAN7QC+AsAFBUD0N0AAqgJ4AOiEw+WrqAtBxBY0NZAHsBAD1T4wfVmHwoIALmgBVZMkTAOERc2gKlaABYcO0RWICuyACbREk1kqhYxyKqEgwA+gAqbIj2CCjo2LgETtIo9jAAFGFomDh4hJBWyMwAlMRkVLT0BPhihJ7QAGZiICBiAO7CAObQQtoqRdA+UNBB7KFIKZHpAEwxeA4wyRFp0Zlg2fkUlEA&eslintrc=N4KABGBECmAeAu0B2ATAzpAXGA2uCU0aANgJZLyYBO0AxgPYC2jyK0KkANPhJAA7EArgHNymAALwAnnyK0qpPvAC0RMhQD0aeAtrxI+ALrdefAIZU00KliiSZchUtUly8DecvWu+fkNFIGNh4BHbSsmjyiipqbgYQxr6eVlQA8kqk9IG2oKH8VPQAVnT62JAAdBrwkVkAZqTC5YVoWT551QxI9cIASvT08AAipDZllfFgAL4mUAUDtjqC0DOQVILERDk8UEj0yoJIglYoygBuFkFQ9LW1bQSQ9hFRzrGau-uHx2cXtiGhUAB3CxIO6hXL-XgWYRoACSwl2NAACmZ4IgqCCygA9AD6oP+kHOljhCOgyNR1gxUBxeLytDMIgAFvAAKJUApE+H0JEotGUyDU7YQSbbRJ5R6OaIudTud67JDKQ7EYjKMxoFLwTJ8663Ga8ACOggGm2CgsBwJpUBQ9EEACMNhMErqoFZGKRfqbIED0RbIGZiECpBgRU7IOQ2BR3RDPeanRAACzB7YPcISl6uTQ2qhmWjQZTaKT2spekEh8WRJwxdPuBjMMzKFBmJDCQtm72llPlyWvatMRh1tDmWjkYS2aNtpNl56V6UaTpoUjaZAqMNwdjKeg24p6PPSFtjksTjtTqVuDRwASkIcqWoHPSa5Q0eCCdHKFOj4t45MOTtpmfnshXsoLCMDa1gqrQOZqqQNqkGQ0jvjGh7fse3YaDeSC0ModJKnmg7Dgh45ikeFYnpoADW0BSACXInAO2b4UWiFEchJGoe8cA6I20DWmgWHEKqlyQNqn6TqxVYaO8Nqqrm8B7NoChNqOwntixXbiexCBZsonjIIJH4qU8YkzhpnF5tAroEQezGGWpxl7DQBojLmpCMHwXLVJZInEbZp7vGgDJmFaAKeQZqbTr5ewHEgdBEGgFhSFhWQoKQGqtIxhH3KJPlvJFSDRZBcVUAlBp+qQ9TeOlVmZd5v6nhuW4qLQz7EAldFDopJpRvpHp+gGQahKK1WqbVmh8DQtRgbUXLrrclVecN4WaMBoFUPW0BkK6aI7gW0AhUhNkjTKey1MQ9AosO2kFK6ViXH8eTWOyFrglGDQkgAavQpAcNgizQKawoDaFP6LUdCpmCwbW7WUyn7WFpHuGN0ATatipkP5iV+nIDFXDc80HSDHjjWBNCBVkLV7dZcOoWNTALrm6F3lkKpoFIGEU0N+PwxoBpGnpTEc1T4kum6c1AyhQuDs5XSkLA658HzGW8Flh1VA4Kp5QM51M212P7p+FhZglmbZhRKg6x1rZVZCbL0AC2kWLp7PWwUdvmyOotJna9C0GRuH0RbeshlaKinXSqWUnd9zdVGNOyFQ8GJvderQMnepO1AFGtXhAfR-c7ydDe85NiqNvBR7eT51kLR7g9XKfu8LkXoBDDWEOaWW-XeyndFLXKGV6eQO8jDrBqfuQQP7ycbBF2QwrVs7HsAIMilRCS8ooFTTQl30HH8Hl-cO-WCi03qNAmbQGYZGRviud5BvXK7Yn9yI8jqiwG50UUKQWvyofWayaMDuIYaDaFwiTWi2d3ZAKTJDdeSMH7r1DmROen5YHkHtjQbI+9eCwIOPFOWKCQyQxODWFgEY5r4GFJMIAA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkeAhpgObp4VQCiAygEwAMPAIyQANOBqQSeTMmhtK0gK7oxNKPFgATRRnaQAwgg1EAUl1HjaG7RgBK6ErFSKCxPUS3oLayPVSpYAHcuAE8iPAALVlkAEXQAM3odPABJJFhMPDIFTGVVCUwHJwA3dBNHIgBZLR0vHLzLKAdqm3QU8KxYRHYlFUbJAGtkRAAZZAAjfSjoAZ7cvp9YFxjkTD1NZCkAem8JVAn2AG1G2m5+IUhGgF182mR0zIAJdFRELGywXtuoR0VMaHQlXo3Xq6HEAF98pBkERoM5NHUwMcfCR-lsAFTojGXCA3cSQdAADzhigRR36HgRAH1rLUyOIriBwUA

Repro Code

class EventEmitter { }

// @typescript-eslint/no-extra-parens: Unnecessary parentheses around expression
class _TypedEventEmitter extends (EventEmitter as any) { }

// error on following line:
class TypedEventEmitter2 extends EventEmitter as any { }

ESLint Config

{
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/strict"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],
  "parserOptions": {
    "project": "./tsconfig.json",
    "tsconfigRootDir": "./"
  },
  "root": true,
  "rules": {
    "@typescript-eslint/no-extra-parens": "warn"
  }
}

tsconfig

{
  "compilerOptions": {
    "target": "ES2021",
    "strict": true,
    "module": "CommonJS",
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "outDir": "dist/",
    "lib": [
      "ES2021"
    ],
    "importHelpers": true,
    "sourceMap": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

Expected Result

no-extra-parens should not occur on this line because the parentheses are needed.

Actual Result

After applying rule there is an error.

Additional Info

No response

Versions

package version
@typescript-eslint/eslint-plugin 5.36.2
@typescript-eslint/parser 5.36.2
TypeScript 4.8.3
ESLint 8.23.0
node 18.11.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issuebugSomething isn't workingformattingRelated to whitespace/bracket formatting. We strongly recommend you use a formatter instead.package: 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