查看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 */
更新:从我的问题描述中可能不清楚,但是我的枚举基于字符串。
答案 0 :(得分:1)
您应该查看eslint-plugin-typescript-sort-keys,以及有关规则here的更多详细信息。 我还没有尝试过,但它似乎可以满足您的要求。
答案 1 :(得分:1)
如果您使用的是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
}
答案 2 :(得分:-1)
这并不是您问题的直接答案,但是使用TypeScript可以通过不声明所有值来实现隐式排序。例如,根据the official documentation,您可以执行以下操作:
enum Direction {
Up = 1,
Down,
Left,
Right,
}
这将被隐式排序。