初書:2022/06/18
前書き
Promiseを使う際に、順番通りに実行する必要があるコードだと、awaitを使って処理結果を待つことがある。
ただ、await自体は必須ワードではないので、つい書き忘れてしまい、その結果意図しないコードが出来ることがある。
と言うことで、エディター側で書き忘れていたらエラーが出るようにしたいと言うのが今回のお話。
前提
typescriptとeslintを使っていること。
コード例
async function outputDataToConsole() {
const data = getData(); // promise<object>
console.log(data);
}
とても適当に用意したコード。
この中のgetData
がPromiseで例えばデータベースに接続して取得するようなコードだとしよう。
このコードを実行した場合、その下のconsole.log
で出力されるのはpromise自体で、
データが出力されない。
これを防ぐために、getData
のところでエラーが出るようにしたい。
対策
tslintにno-floating-promises
と言うものがあり、
これを使うことでawaitのところでエラーが出るようになる。
.eslintrc.json
"overrides": [
{
"files": ["**/*.ts"],
"rules": {
"@typescript-eslint/no-floating-promises": "error"
},
"parserOptions": {
"project": ["./tsconfig.json"]
}
}
]
typescriptのeslintのため、overrides
のところに記述している。
これで、awaitを書き忘れるとエラーが出るようになった。