如何在 TypeScript 中导出对象?
Posted
技术标签:
【中文标题】如何在 TypeScript 中导出对象?【英文标题】:How do I export an object in 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]
,但它生成的输出不是预期的。我做错了什么?
【问题讨论】:
【参考方案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
对象中吗?我错过了什么吗?以上是关于如何在 TypeScript 中导出对象?的主要内容,如果未能解决你的问题,请参考以下文章
从 React 组件中导出 TypeScript 类型的字符串属性值?
如何在没有 <reference> 的情况下在 TypeScript 中导入带有“Typings”的模块?