typescript-eslint-parser という ESLint 用の TypeScript パーサがあったので試してみます。

インストール

npm install でインストールされたバージョンだとエラーが出て使えなかったので GitHub レポジトリから直接インストールします。

$ npm install -g eslint
$ npm install -D eslint/typescript-eslint-parser

まだ alpha バージョンみたいです。

試す

適当な TypeScript を用意して試してみます。

// src/a.ts

var x: number = 1;

function f(x, number, ...r: any[]) {
  return x;
}

.eslint.jsonparser を指定します。

{
  "extends": "eslint:recommended",
  "parser": "typescript-eslint-parser",
  "rules": {
    "indent": [2, 4],
    "linebreak-style": [2, "unix"],
    "max-len": [2, 80, 4],
    "no-unused-vars": [2, { "args": "none", "varsIgnorePattern": "_" }],
    "quotes": [2, "single" ],
    "semi": [2, "always"]
  }
}

インデント幅などを設定しておきます。

eslint を走らせるときは --ext オプションを指定してあげます。

$ eslint --ext src

実行すると xf が使われてないこととインデントがスペース4つじゃないことを教えてくれます。

--fix オプションをつけるとちゃんとインデントを直してくれました。 tslint だとこういうことができないので面倒です。

$ eslint --fix --ext .ts src
...
$ cat src/a.ts
// src/a.ts

var x: number = 1;

function f(x, number, ...r: any[]) {
    return x;
}

まとめ

まだアルファ版なので色々うまく行かなかったりしますが、一応試すことができました。 TypeScript のスタイルチェックは、まだまだ tslint に頼ることになりそうですが、今後に期待です。

まともに使えるようになったら、 JavaScript と共通の設定を使えるのは便利かもしれません。