Streamlines coding style consistency and code readability by sorting interfaces, types, string enums, and object parameters within arrow functions.
npm i --save-dev eslint-plugin-typescript-sort
Tip:
Configure your IDE to auto-format code on save according to ESLint rules, reducing the need for manual sorting and enhancing your coding workflow. Here's a guide on how to do it in VSCode.
Name | Description | Recommended | Fixable |
---|---|---|---|
typescript-sort/interface |
Require interface keys to be sorted. | ✅ | 🔧 |
typescript-sort/type |
Require string type members to be sorted. | ✅ | 🔧 |
typescript-sort/enum |
Require string enum members to be sorted. | ✅ | 🔧 |
typescript-sort/arrowfunc-object-params |
Require objects inside arrow function parameters to be sorted. | ✅ | 🔧 |
You'll first need to install eslint, typescript and @typescript-eslint/parser
npm i --save-dev eslint typescript @typescript-eslint/parser
Then, install eslint-plugin-typescript-sort
:
npm i --save-dev eslint-plugin-typescript-sort
Everything is configured in your .eslintrc
configuration file
Specify the parser for typescript files:
{
"parser": "@typescript-eslint/parser"
}
Add typescript-sort
to the plugins section. You can omit the eslint-plugin-
part:
{
"plugins": ["typescript-sort"]
}
Then configure the rules you want to use under the rules section:
{
"rules": {
"typescript-sort/interface": "error",
"typescript-sort/type": "error",
"typescript-sort/enum": "error"
"typescript-sort/arrowfunc-object-params": "error"
}
}
Enable all rules with recommended config:
{
"extends": ["plugin:typescript-sort/recommended"]
}
To see custom options for each rules, see the rule's documentation page
.
E.g. typescript-sort/interface has options for case sensitivity, natural order and required first.
{
"typescript-sort/interface": [
"error",
"asc",
{ "caseSensitive": true, "natural": false, "requiredFirst": false }
]
}
Inspired by and sourced from eslint/sort-keys and infectr/eslint-plugin-typescript-sort-keys.