2017-08-23 16 views
0

私はtypescript/nodeの初心者です。私は「config.ts」Typescriptでの外部依存関係のインポート

私のconfigファイルのコードは

let config = { 
    mongoAddress: "mongodb://localhost:27017/dts", 
    dataDirectory: "../../data/" 
}; 

module.exports = config; 

私は設定をインポートしています以下の通りであるから、外部の設定依存関係をインポートしたいと思い、そこからtypescriptファイル「order.ts」を持っています以下のようにオーダーファイルのファイル

import { config } from "../../config"; 

しかし、私はTSコンパイラーがエラー "...ファイルではないモジュール"を投げています。私は

enter image description here

+1

試みるこの--- エクスポートCONSTの設定= { mongoAddress: "のMongoDB:// localhostの:27017 /のDTS"、 DATADIRECTORY: "../../data/" }。 –

+0

それは働いた:) ...ありがとうアジャイ – Asif

答えて

0

インポートとエクスポートの2つの方法があります。

1)デフォルトのエクスポート

// config.ts 
export const config = { 
    mongoAddress: "mongodb://localhost:27017/dts", 
    dataDirectory: "../../data/" 
}; 
export default config; 

// your other file 

import configs from './config'; 

注:ここでは、インポートされたモジュールには任意の名前を付けることができ、

2)インポート時に正確な宣言名で通常のエクスポートが行われます。

// config.ts 
export const config = { 
    mongoAddress: "mongodb://localhost:27017/dts", 
    dataDirectory: "../../data/" 
}; 

// your other file 
import { config } from './config'; 

注:ここでは、エクスポートしたモジュールの正確な名前を指定する必要があります。

configをエクスポートする際のベストプラクティス。

コード内に静的変数を含む静的クラスを作成します。これは、これらの設定が固定されていることを意味します。

0

module.exports typescriptですで私の外部依存関係をインポートする必要がありますどのように任意の手掛かりは、モジュールをエクスポートするためのノードの構文です。

export const config = { 
    mongoAddress: "mongodb://localhost:27017/dts", 
    dataDirectory: "../../data/" 
}; 
2

ここでの主な部分は、あなたが輸出あなたのオブジェクトインスタンスにしたいです:活字体はexportはそうあなただけこれを使用することができますキーワード名を持っています。あなたはそれで正しい道を歩いていますが、より簡単な方法があるかもしれません。クラスでラップし、エクスポートするように、この場合、何かに

こと:

export class Config { 
    mongoAddress = 'mongodb://localhost:27017/dts'; 
    dataDirectory = '../../data/'; 
} 

は、クラスの前exportに注意してください。同じことは、それをあなたがそれをインポートし、それを初期化することができますこの方法を輸出して、インターフェイス、列挙型などに適用することができます。

import { Config } from '../config'; 

var c = new Config(); 
console.log(c.mongoAddress); 

これはあなたの元の例のように、それを変数にするが、あなた'LLません。単純にクラスでラップします。このため、最初にnew Config()を使用して初期化する必要があります。

ここでは、これらのプロパティを単純にグローバルにアクセスしたいと考えています。おそらく静的/読み込み専用なので、毎回クラスを初期化する必要はありません。活字体の静的型付けを利用して、サンプルは、この場合には、このようなものに、より良いリファクタリングのようになります。これにより

export class Config { 
    public static readonly mongoAddress: string = 'mongodb://localhost:27017/dts'; 
    public static readonly dataDirectory: string = '../../data/'; 
} 

、それを呼び出すことでも目立たないです - と非常に安全なタイプ:

console.log(Config.mongoAddress); 
console.log(Config.dataDirectory); 

この方法でエクスポートすることは、単なるオプションの1つに過ぎません。実際には、アプリケーション全体(または第三者図書館)から、library structure you're usingに完全に依存しています。これはちょっとした読書ですが、UMDやモジュールなどの用語や、インポートとの関連性について知るには、さまざまな構造を見てみることをおすすめします。

希望すると便利です。

関連する問題