Typescriptを使用してNodeJSでエクスポートとインポートがどのように機能するかを誰かが正確に説明できますか?
私の設定は:
私はいくつかの適切なコーディングをする代わりにエクスポート/インポートをいじっています、それは私を混乱させ、それがどのように機能するかの適切な説明を見つけることができません。
インポート
以下について説明してください。
var module = require ("module");
import module = require("module");
import module from "module";
import {something} from "module";
import * as module from "module";
エクスポート
以下について説明していただけますか
export = something;
export default something;
export interface|class something;
質問
エクスポートとインポートの適切な方法を見つけることができないようです。そのため、IDEは赤でカバーされておらず、何百ものエラーを投げています。
一般的な質問
質問のリストはどんどん続きますが、上記のいくつかが答えられたら、私は残りを拾うことができると確信しています。
このような一般的な質問をありがとうと申し訳ありませんが、私の欲求不満のレベルはちょうどトップに達しました...
同意し、インポート/エクスポートの構文は、少なくとも2つの理由で混乱しています。
var module = require ("module");
は機能しますが、それはcommonjsです->タイプなしimport x = require('y'
)がTSで廃止されましたTL; DR;:TS 1.5で導入された「es6スタイル」構文を使用します
私が知っているTSのインポート/エクスポートの「最良の」リソースは this です
全体的に私はこれを読むことをお勧めします 優れたハンドブック これはあなたの質問のほとんどに対する答えを提供します
デフォルトのエクスポートから
Something
はデフォルト(単一)のエクスポートとしてエクスポートされました。つまり、ts/es6のexport default Something
使用する
import Something from "module"
実際には、別の名前でデフォルトのエクスポートをインポートできます。 import SomethingElse from 'module'
も機能します
名前付きエクスポートから
Something
は、ts/es6のexport {Something}
またはexport class|interface Something{}
を使用して、「モジュール」の名前付きエクスポートとしてエクスポートされました
それだけをインポートしたい場合は、
import {Something} from "module"
名前空間mod
の「モジュール」からエクスポートされたすべてのものをインポートしたい
import * as mod from "module
次にconst c:mod.Something = whatever
を使用します
上記のimport
sを参照
フォームexport = something
は廃止され、新しいES6スタイルの構文が採用されました。ほとんどの場合、jsライブラリが単一の関数/オブジェクトをエクスポートするという事実を表すために、定義ファイルに含まれています。 module.exports=something
。
ES6スタイルの構文を使用し、default
エクスポートを避けます。これらには、別の名前を使用してインポートできるという利点がありますが、
import {Something as SomethingElse} from "module"
具体的には、エクスポートする必要のあるものをすべてエクスポートし、具体的にインポートします
api.ts
export interface MyInterface {
}
export class MyClass {
}
main.ts
import {MyInterface, MyClass} from './api'
優れたリンティングを提供する優れたIDEはたくさんあります:VSCode、Atom TypeScriptとWebstormで人気のあるものをいくつか挙げます。最初の2つは無料で、3つ目はインポートを管理します。