結論
TypeScript の関数定義で、使用しないパラメータを書くときは、パラメータ名をアンダースコアで始める。
例:
app.use((_req, _res, next) => {
next();
});
説明
例えばexpress-generator
でExpressのテンプレートを生成したとき、存在しないパスへのリクエストを処理するのに次のようなコードが作られる。
// catch 404 and forward to error handler
app.use((req, res, next) => {
next(createError(404, '存在しないパスへのリクエストです'));
});
参考: express-generatorで生成したapp.js のコードを1行ずつ解読
JavaScriptのままなら問題ないが、TypeScriptの場合、req
, res
の部分で怒られる
'req' が宣言されていますが、その値が読み取られることはありません。ts(6133)
'res' が宣言されていますが、その値が読み取られることはありません。ts(6133)
パラメータ名の先頭にアンダースコアをつけると解決する。つまり req
を _req
, res
を _res
にする。
// catch 404 and forward to error handler
app.use((_req, _res, next) => {
next(createError(404, '存在しないパスへのリクエストです'));
});
これなら怒られない。