expressでサーバー立てようと思い、このように書いていたら、
//index.ts
import * as express from "express";
const app = express();
トランスパイルして実行したところ、こんなことを言われました。
/dist/index.js:2
var app = express();
^
TypeError: express is not a function
※ちなみに、tsconfig.jsonのmodule
は、es6
です。
対処法
//index.ts
import * as express from "express";
//↓
import express from 'express';
という記事を見て、真似してみましたが、今度は下のようなコンパイルエラーも出ました。
このモジュールは 'export =' を使用して宣言されていて、
'allowSyntheticDefaultImports' フラグを使用する場合は
既定のインポートでのみ使用できます。
これについては、tsconfig.jsonにこれを追加してやれば消えます。
{
"compilerOptions": {
"allowSyntheticDefaultImports": true
}
}
これを追加することで、モジュールからのデフォルトのインポートを許可できるそう。
詳しくは勉強中…
参考にした記事
https://qiita.com/kozzzz/items/59816861e6a2eb80cb34
https://numb86-tech.hatenablog.com/entry/2020/07/11/160159
https://qiita.com/rhirayamaaan/items/cf3d859678577ec90d7b