簡體   English   中英

如何在 TypeScript 中導出對象?

[英]How do I export an object in TypeScript?

例如,我試圖導出一個 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]但它生成的輸出不是預期的。 我究竟做錯了什么?

在 ES6 中,您可以使用導出功能導出名稱,或者默認情況下您可以導出任何內容。 require格式如下:

let config = require('config')

它采用配置文件的默認導出。 在你的情況下,你應該這樣做:

export default config[env]

如果您想使用導出,您可以執行以下操作:

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

不同之處在於:

import EnvirmentNameWhatever from "./config"

import {Environment} from "./config"
  • 注意 - 默認導出時,您可以使用任何您喜歡的名稱,而僅導出時,您必須使用導出的名稱。

在要export的聲明上使用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

    }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM