web-dev-qa-db-ja.com

Typescriptでオブジェクトをエクスポートする方法

既存のJavaScriptプロジェクトをタイプスクリプトに変換しています。このjavscript出力を取得するためにオブジェクトをエクスポートする方法がわからない

const path = require('path'),
      rootPath = path.normalize(__dirname + '/..'),
      env = process.env.NODE_ENV || 'development';

let config = {
  development: {
    amqpUrl: "amqp://localhost:15672",
    root: rootPath

  },
  test: {
    amqpUrl: "amqp://localhost:5672",
    root: rootPath

  },
  production: {
    amqpUrl: "amqp://localhost:5672",
    root: rootPath

  }
};
module.exports = config[env];

私は次のようにTypeScriptを書きましたが、エクスポートでは明確ではありません

import path = require("path")

    const rootPath = path.normalize(__dirname + '/..')
    const env = process.env.NODE_ENV || 'development'

    let config = {
      development: {
        amqpUrl: "amqp://localhost:15672",
        root: rootPath

      },
      test: {
        amqpUrl: "amqp://localhost:5672",
        root: rootPath

      },
      production: {
        amqpUrl: "amqp://localhost:5672",
        root: rootPath

      }
    };

   /* this is the line i'm having problem how can i export config object*/
    // export config[env];

エクスポートするとき、export default config[env]しかし、期待される出力とは異なるものを生成します

11
Gayan

ES6では、エクスポート機能を使用して名前をエクスポートできます。デフォルトでは、何でもエクスポートできます。 require形式は次のようになります。

let config = require('config')

そして、それは設定ファイルのデフォルトのエクスポートを取ります。あなたの場合、あなたはすべきです:

export default config[env]

エクスポートを使用する場合は、次のようにします。

let Environment = config[env];
export {Environment}

違いは次のとおりです。

import EnvirmentNameWhatever from "./config"

import {Environment} from "./config"
  • 注-デフォルトのエクスポートでは、好きな名前を使用できますが、エクスポートするだけの場合は、エクスポートされた名前を使用する必要があります。
19
Amit

エクスポートする宣言でexportキーワードを使用すると、次のようにジョブを実行できます。

import path = require("path")

const rootPath = path.normalize(__dirname + '/..')
export const env = process.env.NODE_ENV || 'development'

export let config = {
    development: {
    amqpUrl: "amqp://localhost:15672",
    root: rootPath

    },
    test: {
    amqpUrl: "amqp://localhost:5672",
    root: rootPath

    },
    production: {
    amqpUrl: "amqp://localhost:5672",
    root: rootPath

    }
};
10
daragua