[esnext] “如果有一个键无法指向同名变量,则所有键都不使用缩写”是否过于严苛?
hax opened this issue · comments
个人认为在每行单独一对键值的情况下,即使间或有缩写,也并不会损害可读性。
这条属于code style,主要是和之前我厂的风格保持一致。我厂之前有类似的条目:
[强制] 对象创建时,如果一个对象的所有 属性 均可以不添加引号,则所有 属性 不得添加引号。
[强制] 对象创建时,如果任何一个 属性 需要添加引号,则所有 属性 必须添加 '。
这种 @hax 大就忽略吧,估计其他团队不会像我们这么龟毛,所以也不会理这种条目的。😄
确实龟毛。
而且这规则实行起来很麻烦,比如修改代码新增加/删除一个属性,导致整块代码需要修改,这是制定代码风格时应该尽量避免的。(话说这也是我prefer tab而不是空格的原因之一。)
我理解这类规则其实主要出于美观(从而略有提高可读性),但是在ES6还加入了computed property,所以只要有计算属性,那么完全整齐是不可能做到的。
建议可以考虑取消这条龟毛而又无法达到当初目的的规则。(因为这是放松规则,所以应该不会引起反弹吧。)
现晒晒我写的代码,哈哈
var HTML_ENTITY = {
/* jshint ignore:start */
'&': '&',
'<': '<',
'>': '>',
'"': '"',
/* eslint-disable quotes */
"'": '''
/* eslint-enable quotes */
/* jshint ignore:end */
};
确实有了computed property后美观已不可得。可以考虑。回头我们在内部专门找个机会讨论相关问题,看Work Group大家的意见。
这个代码不需要 eslint-disable quotes
呀,只要把规则设为 [2, "single", "avoid-escape"]
即可。
voting, just a note
内部投票结论已出,该issue在完成修改后关闭。
A. 直接删除 (5)
B. 改成建议 (6)√
C. 保留强制 (0)