Skip to content

Bug: [member-ordering] optionalityOrder is reversed #6255

@TFohrer

Description

@TFohrer

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=C4TwDgpgBAsiAq5oF4oG8BQUoCcIEcBXASzwBMAFHAezAC4oBnYHYgOwHMBuLKW4YtTYBDADZVaAfgbNWnHgF8gA&eslintrc=N4KABGBEBOCuA2BTAzpAXGUEKQAIBcBPABxQGNoBLY-AWhXkoDt8B6AW0XYCNFpaA9tAAmfZgHN0YANrhsOPtCGQANHPnysGnEVIAZSvj4BDeKgxbtOATUoCmpw4QDyIvlJiIAjrErREwrQAZn7I+JDqVhAAvpHasdoAunKx0UA&tsconfig=N4KABGBEDGD2C2AHAlgGwKYCcDyiAuysAdgM6QBcYoEEkJemy0eAcgK6qoDCAFutAGsylBm3TgwAXxCSgA

Repro Code

type MyType = {
  requiredProp: string;
  optionalProp?: string;
}

ESLint Config

module.exports = {
  parser: "@typescript-eslint/parser",
  "rules": {
    "@typescript-eslint/member-ordering": [
      "error",
          {
        "typeLiterals": {
          "optionalityOrder": "required-first"
          }
          }
      ]
  }
};

tsconfig

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

Expected Result

I expect no error when the requiredProp is the first item.
I expect an error when the requiredProp is not the first item.

Actual Result

Error is shown when requiredProp is first item:

Member requiredProp should be declared after all optional members. 2:3 - 2:24

Additional Info

Seems like in the implementation the result for the optionalOrRequired condition is reversed:
https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/rules/member-ordering.ts#L784

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