はじめに
aspida、使ってますかー?
私は愛用しています。プロジェクト数はあんまり多くないですが…
aspidaというのはTypeScript向けのシステムで、簡単に特徴とメリットを説明しておくと、REST APIの型定義をファイルに記述しておくことで、補完の効くオブジェクト形式で使えるというものです。 型安全の幸せな世界が待っています。 (aspida - GitHub)
問題:間違いに気付かない
aspidaを使っていると少し困ったことに遭遇します。
定義ファイルは次のような見た目なのですが、TypeScriptネイティブの機能を利用しているため、余計なプロパティがあってもエラー等が出ません。
export interface Methods {
get: {
query: {
key: value;
};
resbody: { // resBodyの間違い!
key: value;
};
};
}
私の場合、間違ったコードを書いては原因が分からず、何度もaspidaのソースを見にいきました。1
- 間違ったプロパティが存在したときエラーを発生させるようPull Requestを出してもよかったのですが、意図して余計な要素を置いている可能性もありますし、迂闊に変更するべきではないと考えました。
- エディタで編集しているその場でフィードバックが欲しいと考えました。
解決:eslintプラグインを開発しました!
eslintなら先の要件を解決することができます。
こちらがnpmパッケージです: eslint-plugin-aspida - npm
開発途中ですが、テストが足りてないだけで実用に問題はないはずです。
使いかた
他のプラグインと同様ですが、一応記載しておきます
インストール
npmパッケージなので、まずはインストールをします。
$ npm install -D eslint-plugin-aspida # npmを使う場合
$ yarn add -D eslint-plugin-aspida # yarnを使う場合
設定
.eslintrc.js
にプラグインの読み込み設定をします。
"plugins": [
+ "aspida",
]
recommended設定を読み込みます。全ての機能が有効になっています。
"extends": [
+ "plugin:aspida/recommended",
]
これだけで幸せなaspida生活が待っています。ぜひ使ってください。