zoukankan      html  css  js  c++  java
  • sort-keys (Rules) – Eslint 中文开发手册

    [
  •   Eslint 中文开发手册

    sort-keys (Rules) - Eslint 中文开发手册

    在声明多个属性时,一些开发人员喜欢按字母顺序对属性名称进行排序,以便稍后能够更轻松地找到必要的属性。其他人则认为这增加了复杂性,并成为维护的负担。

    规则细节

    该规则检查对象表达式的所有属性定义并验证所有变量是按字母顺序排序的。

    此规则的错误代码示例:

    /*eslint sort-keys: "error"*/
    /*eslint-env es6*/
    
    let obj = {a: 1, c: 3, b: 2};
    let obj = {a: 1, "c": 3, b: 2};
    
    // Case-sensitive by default.
    let obj = {a: 1, b: 2, C: 3};
    
    // Non-natural order by default.
    let obj = {1: a, 2: c, 10: b};
    
    // This rule checks computed properties which have a simple name as well.
    // Simple names are names which are expressed by an Identifier node or a Literal node.
    const S = Symbol("s")
    let obj = {a: 1, ["c"]: 3, b: 2};
    let obj = {a: 1, [S]: 3, b: 2};

    此规则的正确代码示例:

    /*eslint sort-keys: "error"*/
    /*eslint-env es6*/
    
    let obj = {a: 1, b: 2, c: 3};
    let obj = {a: 1, "b": 2, c: 3};
    
    // Case-sensitive by default.
    let obj = {C: 3, a: 1, b: 2};
    
    // Non-natural order by default.
    let obj = {1: a, 10: b, 2: c};
    
    // This rule checks computed properties which have a simple name as well.
    let obj = {a: 1, ["b"]: 2, c: 3};
    let obj = {a: 1, [b]: 2, c: 3};
    
    // This rule ignores computed properties which have a non-simple name.
    let obj = {a: 1, : 3, b: 2};
    let obj = {a: 1, ["c" + "d"]: 3, b: 2};
    let obj = {a: 1, [`${c}`]: 3, b: 2};
    let obj = {a: 1, [tag`c`]: 3, b: 2};

    选项

    {
        "sort-keys": ["error", "asc", {"caseSensitive": true, "natural": false}]
    }

    第一个选项是"asc"或"desc"。

    "asc" (默认) - 强制属性按升序排列。"desc" - 强制属性按降序排列。

    第二个选项是具有2个属性的对象。

    caseSensitive- 如果true强制执行属性以区分大小写的顺序。默认是true。natural- 如果true强制性质按照自然顺序执行。默认是false。自然顺序以人类排序的方式比较包含字母和数字组合的字符串。它基本上按数字排序,而不是按字母顺序排序。所以数字10出现在自然分类中的数字3之后。

    列表示例:

    natural为真,顺序将是1 3 6 8 10

    natural为假,则排序为1 10 3 6 8

    desc

    选项的错误代码示例"desc":

    /*eslint sort-keys: ["error", "desc"]*/
    /*eslint-env es6*/
    
    let obj = {b: 2, c: 3, a: 1};
    let obj = {"b": 2, c: 3, a: 1};
    
    // Case-sensitive by default.
    let obj = {C: 1, b: 3, a: 2};
    
    // Non-natural order by default.
    let obj = {10: b, 2: c, 1: a};

    选项的正确代码示例"desc":

    /*eslint sort-keys: ["error", "desc"]*/
    /*eslint-env es6*/
    
    let obj = {c: 3, b: 2, a: 1};
    let obj = {c: 3, "b": 2, a: 1};
    
    // Case-sensitive by default.
    let obj = {b: 3, a: 2, C: 1};
    
    // Non-natural order by default.
    let obj = {2: c, 10: b, 1: a};

    insensitive

    选项的错误代码示例{caseSensitive: false}:

    /*eslint sort-keys: ["error", "asc", {caseSensitive: false}]*/
    /*eslint-env es6*/
    
    let obj = {a: 1, c: 3, C: 4, b: 2};
    let obj = {a: 1, C: 3, c: 4, b: 2};

    选项的正确代码示例{caseSensitive: false}:

    /*eslint sort-keys: ["error", "asc", {caseSensitive: false}]*/
    /*eslint-env es6*/
    
    let obj = {a: 1, b: 2, c: 3, C: 4};
    let obj = {a: 1, b: 2, C: 3, c: 4};

    natural

    选项的错误代码示例{natural: true}:

    /*eslint sort-keys: ["error", "asc", {natural: true}]*/
    /*eslint-env es6*/
    
    let obj = {1: a, 10: c, 2: b};

    选项的正确代码示例{natural: true}:

    /*eslint sort-keys: ["error", "asc", {natural: true}]*/
    /*eslint-env es6*/
    
    let obj = {1: a, 2: b, 10: c};

    何时不使用

    如果您不想通知属性的订单,那么禁用此规则是安全的。

    相关规则

    sort-importssort-vars

    兼容性

    JSCS: validateOrderInObjectKeys版本此规则是在ESLint 3.3.0.Resources中引入的Rule sourceDocumentation source

  •   Eslint 中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/javascript/34576.html
  • 相关阅读:
    vip视频播放
    一行Python代码画心型
    使用赫夫曼编码压缩数据
    动态规划与贪婪算法学习笔记
    boost 编写finger服务
    磁盘保护原理简介
    知乎上的一道题目 如何判断某个二进制数如是否存在两位1中间有包含0的情况?
    <Linux多线程服务端编程>学习记录
    Debian8 下面 muduo库编译与使用
    无盘工作站原理分析
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13252686.html
Copyright © 2011-2022 走看看