eslint-plugin-typescript-sort v0.1.11
eslint-plugin-typescript-sort
Streamlines coding style consistency and code readability by sorting various code elements like interfaces, types, string enums, and object parameters within arrow functions.
npm i --save-dev eslint-plugin-typescript-sortTip: 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.
Supported Rules
| Name | Description | Recommended | Fixable |
|---|---|---|---|
typescript-sort/interface | Require interface keys to be sorted. | ✅ | :wrench: |
typescript-sort/type | Require string type members to be sorted. | ✅ | :wrench: |
typescript-sort/enum | Require string enum members to be sorted. | ✅ | :wrench: |
typescript-sort/arrowfunc-object-params | Require objects inside arrow function parameters to be sorted. | ✅ | :wrench: |
Installation
You'll first need to install eslint, typescript and @typescript-eslint/parser
npm i --save-dev eslint typescript @typescript-eslint/parserThen, install eslint-plugin-typescript-sort:
npm i --save-dev eslint-plugin-typescript-sortUsage
Everything is configured in your .eslintrc configuration file
Specify the parser for typescript files:
{
"parser": "@typescript-eslint/parser"
}Option 1
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"
}
}Option 2
Enable all rules with recommended config:
{
"extends": ["plugin:typescript-sort/recommended"]
}Rules options
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 }
]
}Credits
Inspired by and sourced from eslint/sort-keys and infectr/eslint-plugin-typescript-sort-keys.