Skip to content

Bug: [member ordering] Static initialization blocks are regarded as public instance methods. #5404

Closed
@LvChengbin

Description

@LvChengbin

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.7.2&sourceType=module&code=MYGwhgzhAEAqCmEAu0DeAoa1liQS2GiQE8AHeLAXmgHIAZGgbk2mAHsA7ZAJwFdgkbbgAoAlGmgBfdNPShIMBMgBMaFjnyFUUluy5I+AoWLTTJQA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQAIBcBPABxQGNoBLY-AWhXkoDt8B6AW0XYCNFpaA9tAAmfZgHNIYDAG0ofaEMgAacNghZ12SKIBmAQwT4psqLsqJ4wlVGSVxTffljRENyGQFNk+OGXxKylCc+AAWAtZgALqqWtpk8PrIyCgmYDJqcTjEVABuToi0Pk6UZLTmltaxWdmw3Ixlxfil5RZWKplZkDmU+fiFTS0h4VWdcd11DUX4JWXDER012XkFtMzFTGSFFe3VNRP1Leszm9tto0tQnt6+sP6BY1rdK-1rN-qntPMXSwdTxx8tl9EGEFo8IFFHgBfTqQiAwqFAA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eAcgK6qoDCAFutAGsylBm3TgwAXxCSgA

Repro Code

class Test {
  static type  = 'L';
  constructor() { }
}

class Test2 {
  static { }
  constructor() {}
}

ESLint Config

{
  "rules": {
    "@typescript-eslint/member-ordering" : [ "error",
      {
        "default" : [ "field", "signature", "constructor", "method" ],
        "classes" : [
          "private-static-field",
          "public-static-field",
          "private-static-method",
          "public-static-method",
          "private-instance-field",
          "public-instance-field",
          "constructor",
          "private-instance-method",
          "public-instance-method"
        ]
      }
    ]
  }
}

tsconfig

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

Expected Result

No error.

Actual Result

Member constructor should be declared before all public instance method definitions. 8:3 - 8:19

Additional Info

No response

Versions

package version
@typescript-eslint/eslint-plugin 5.31.0
@typescript-eslint/parser 5.31.0
TypeScript 4.7.4
ESLint 8.20.0
node 18.7.0

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