Skip to content

eslint/sort-keys Style

🛠️ An auto-fix is available for this rule for some violations.

What it does

When declaring multiple properties, sorting property names alphabetically makes it easier to find and/or diff necessary properties at a later time.

Why is this bad?

Unsorted property keys can make the code harder to read and maintain.

Examples

Examples of incorrect code for this rule:

js
let myObj = {
  c: 1,
  a: 2,
};

Examples of correct code for this rule:

js
let myObj = {
  a: 2,
  c: 1,
};

Configuration

This rule accepts a configuration object with the following properties:

allowLineSeparatedGroups

type: boolean

default: false

When true, groups of properties separated by a blank line are sorted independently.

caseSensitive

type: boolean

default: true

Whether the sort comparison is case-sensitive (A < a when true).

minKeys

type: integer

default: 2

Minimum number of properties required in an object before sorting is enforced.

natural

type: boolean

default: false

Use natural sort order so that, for example, "a2" comes before "a10".

sortOrder

type: "desc" | "asc"

default: "asc"

Sorting order for keys. Accepts "asc" for ascending or "desc" for descending.

How to use

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny sort-keys
json
{
  "rules": {
    "sort-keys": "error"
  }
}

References

Released under the MIT License.