Express + TypeScriptで別ファイルに分けたらTS2451が発生する。

システム開発Tips

Express + TypeScriptでeslintをかけたときのメモ

別ファイルに分けたファイル内で同名の変数名を定義した場合に
親の敵のように再宣言することはできません (ts2451)が発生します。

これについては以下のように解説がされており、解決方法も提示されています。

インポートに関しては、TypeScriptがファイルを実際のモジュールとして認識せず、モデルレベルの定義がグローバルな定義になってしまうため、おそらくこのエラーが発生しています。

index.js

const express = require('express');

index2.js

const express = require('express'); // ts2451が発生

変数名を変更するか、なんだかんだ適当にexport{}を追加すればモジュールだって認識するよ!HAHA!

index2.js

export{}:// index2.jsがモジュールとして認識されてts2451が解消
const express = require('express');

うーん、変数名は流石にいや、exportもダサすぎない?
参考

結局団長の思いでexportを採用したけど、流石に空で追加するのは気が引けたので、エクスポートしたい処理を囲うようにしたけど、なんだかなぁ。

const express = require('express');
function xxx () {
  // express使ってなんか処理
}
export {
  xxx
};

フォローお願いします!

コメント

タイトルとURLをコピーしました