Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
20
Help us understand the problem. What is going on with this article?
@mysticatea

ESLint v2.10.0

More than 3 years have passed since last update.

v2.9.0 | 次 v2.11.0

いくつかのバグ修正・ルール追加・機能改善が行われました。
JSCS からのルール移植が開始しました。今後しばらくはスタイル関連ルールの追加が多くなりそうです。

質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。

URI
日本語 Issue 管理リポジトリ https://github.com/eslint/eslint-jp
日本語チャット https://gitter.im/eslint/eslint-jp
本家 Issue 管理リポジトリ https://github.com/eslint/eslint
本家チャット https://gitter.im/eslint/eslint

新しいルール

#5667: object-property-newline

オブジェクト定義において、1行に複数のプロパティがあると警告します。

/*eslint object-property-newline: "error"*/

// ✔ GOOD
var obj = {
    foo: "foo",
    bar: "bar",
    baz: "baz"
};

// ✘ BAD
var obj = { foo: "foo", bar: "bar", baz: "baz" };
var obj2 = {
    foo: "foo", bar: "bar", baz: "baz"
};
var obj3 = {
    foo: "foo", bar: "bar",
    baz: "baz"
};

オプションが追加されたルール

#3366: object-shorthand

プロパティ名が "/' で囲まれていた場合に省略記法をしないオプションが追加されました。
構文的には省略して問題ないため、オプションです。

/*eslint object-shorthand: ["error", "always", {"avoidQuotes": true}]*/
/*eslint-env es6*/

// ✔ GOOD
var foo = {
    "bar-baz": function() {},
    "qux": qux
};

// ✘ BAD
var foo = {
    "bar-baz"() {}
};

#5692: prefer-const

再代入されていない場合でも、代入文より前の位置で利用されている変数を警告しないためのオプションが追加されました。このオプションは、no-use-before-define ルール (with "nofunc" オプション) との衝突を避けるために追加されました。

/*eslint prefer-const: ["error", {"ignoreReadBeforeAssign": true}]*/
/*eslint-env es6*/

// ✔ GOOD
let timer;
function initialize() {
    if (foo()) {
        clearInterval(timer);
    }
}
timer = setInterval(initialize, 100);

なおデフォルトの振る舞いでは次のようになります。

/*eslint prefer-const: "error"*/
/*eslint-env es6*/

// ✔ GOOD
const timer = setInterval(initialize, 100);
function initialize() {
    if (foo()) {
        clearInterval(timer);
    }
}

// ✘ BAD
let timer;
function initialize() {
    if (foo()) {
        clearInterval(timer);
    }
}
timer = setInterval(initialize, 100);

#5840: no-irregular-whitespace

各種リテラルの中の "irregular whitespace" を許容するオプションが追加されました。
日本語にある 全角空白 も "irregular whitespace" の1つなので、私達にとって便利なオプションです。

  • skipStrings - 文字列リテラル内の "irregular whitespace" を許容する (default で有効)
  • skipRegExps - 正規表現リテラル内の "irregular whitespace" を許容する
  • skipTemplates - テンプレートリテラル内の "irregular whitespace" を許容する

@inuscript さん, @Linda_pp さん、ありがとうございます!

/* eslint no-irregular-whitespace: ["error", {"skipRegExps": true}] */

// ✔ GOOD
var foo = / /;
//         ↑ ここに全角空白がある

#6036: no-extra-parens

return 文で代入式を使う場合の余分なカッコを許可するオプションが追加されました。
no-return-assign ルールとの衝突を回避するためのオプションです。

/* eslint no-extra-parens: ["error", "all", {"returnAssign": false}] */

// ✔ GOOD
function a(b) {
    return (b = 1);
}

// ✘ BAD
function a(b) {
    return (b === 1);
}

eslint --fixに対応したルール

20
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mysticatea
ESLint のメンテナ。Vue.js の開発チームメンバー。JavaScript 言語仕様書 ECMA-262 や JavaScript 構文解析器 Acorn のコントリビューター。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
20
Help us understand the problem. What is going on with this article?