私はJavaScriptにはかなり慣れていて、最近は輸入に苦労しています。私は私の頭を包むことができない1つのことがありました。デフォルトのエクスポートが定義されておらず、モジュールとしてimport *と異なるのはなぜですか?
express
のようなnpmを使用してインストールされる可能性のある古いノードモジュール(主にES6より前のライトを見たもの)では、通常、デフォルトのエクスポートは定義されていません。
My IDE(WebStorm)はで次の行をマークします。デフォルトのエクスポートは、インポートされたモジュールで宣言されていません通知。
import * as express from 'express';
を使用して、エイリアスが暗黙のうちにちょうどすべてをインポートし、express
それに名前を付けるために私のIDEを言って、しかし、その後、そうすることにつながるとして、このメッセージは、モジュール全体をインポートしようとしていることによって回避することができる
import express from 'express';
Expressは、次の行でアプリケーションのインスタンスを作成しようとしている機能エラーではありません。
const app = express();
固有のインポート(エイリアスなし)が機能します。
はデフォルトの輸出が定義されていない場合、エイリアスなしにimport文を使用して、正確に何を輸入していますか?私はそれがモジュール全体であると思うだろうが、そうは見えない。
これは、モジュールのローダーハンドラがES6以前のモジュールをどのように処理しているかわからないIDEの問題です。それが動作する場合は、それを使用し、通知をオフにするか、リンクされたモジュールのエクスポートを宣言する方法を見つけます。 – Bergi
@Bergi IDEの通知は問題ではありません。私はIDEが指摘したように、そのようなインポートが宣言されていないときにデフォルトとしてインポートされるものにもっと興味があります。おそらく、バンドルにモジュールをパックするためにes-2015プリセットでwebpackとbabelを使用しているはずです。今は時間がありませんが、私はそのときに質問を編集します。 –
@DavidPacker WebStormは、「設定」>「言語と言語」で[github.com/DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped)]からタイプ定義ファイル(「express.d.ts」など)をダウンロードして有効にした後、フレームワーク> JavaScript>ライブラリ>ダウンロード> express>ダウンロードとインストール* –