ESLint: требовать сортировки ключей на основе строки для сортировки - PullRequest
1 голос
/ 27 апреля 2020

Глядя на документацию для eslint sort-keys Я могу заставить Visual Studio Code сообщать об ошибке в строке a:

const obj = {
  b: '2',
  a: '1', // not sorted !
  c: '3',
  d: '4',
};

Есть ли способ добиться того же поведение для enum:

/* eslint sort-keys: "error" */
const enum obj {
  b= '2',
  a= '1', // no warning !
  c= '3',
  d= '4',
};
/* eslint-disable sort-keys */

Обновление: это может быть непонятно из описания моего вопроса, но мое перечисление основано на строках.

Ответы [ 3 ]

1 голос
/ 06 мая 2020

Вы должны посмотреть на eslint-plugin-typescript-sort-keys , подробнее о правиле здесь . Я еще не пробовал, но похоже, что ты хочешь.

1 голос
/ 07 мая 2020

Если вы используете TypeScript, возможно, было бы лучше использовать TSLint вместо ESLint.

Вы все еще можете использовать некоторые из ваших ESLint правил с tslint-eslint-rules .

Затем можно добавить @crazyfactory/tslint-rules, которое имеет правило enum-sort-keys, которое точно так же, как object-literal-sort-keys но для enum:

// Passes:

enum Character {
  AAA = "aaa",
  BBB = "bbb",
  CCC = "ccc"
}

// Fails:

enum Character {
  AAA = "aaa",
  CCC = "ccc", <- The key "CCC" is not sorted alphabetically.
  BBB = "bbb"
}

// Passes:

enum Number {
  ONE,
  THREE,
  TWO
}

// Fails:

enum Number {
  ONE,
  TWO, <- The key "TWO" is not sorted alphabetically.
  THREE
}
0 голосов
/ 06 мая 2020

Не совсем прямой ответ на ваш вопрос, но с помощью TypeScript вы можете добиться неявного упорядочения, не объявляя все значения. Например, согласно официальной документации вы можете сделать:

enum Direction {
    Up = 1,
    Down,
    Left,
    Right,
}

И это будет неявно отсортировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...