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
};
コメント