【问题标题】:How do I export an object in TypeScript?如何在 TypeScript 中导出对象?
【发布时间】:2017-06-05 09:05:15
【问题描述】:

例如,我正在尝试导出一个 TS 对象以获取此 JavaScript 输出:

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];

这是我的TS,但是导出不清楚,

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],但它生成的输出不是预期的。我做错了什么?

【问题讨论】:

    标签: javascript node.js typescript


    【解决方案1】:

    在 ES6 中,您可以使用导出功能导出名称,或者默认情况下您可以导出任何内容。 require 格式如下:

    let config = require('config')
    

    它采用配置文件的默认导出。 在你的情况下,你应该这样做:

    export default config[env]
    

    如果你想使用导出,你可以这样做:

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

    区别在于:

    import EnvirmentNameWhatever from "./config"
    

    import {Environment} from "./config"
    
    • 注意 - 默认导出时,您可以使用任何您喜欢的名称,而仅导出时,您必须使用导出的名称。

    【讨论】:

      【解决方案2】:

      在要导出的声明上使用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
      
          }
      };
      

      【讨论】:

      • 我需要导出config[env]
      • 啊,对不起。不会将env 添加到导出的config 对象中吗?我错过了什么吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2018-11-12
      • 2015-12-18
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      相关资源
      最近更新 更多