【发布时间】:2016-09-03 15:46:19
【问题描述】:
我在 CommandEnum.ts 中有以下内容:
export enum CommandEnum {
createProject,
renameProject,
hablaBabla
}
在我能够从实现代码中引用的模块中,使用
import {CommandEnum} from '../server/contracts/CommandEnum'
let x = CommmandEnum.hablaBabla
枚举文件被编译成一个带有导出逻辑的javascript函数,在CommandEnum.js中。
现在可以正常工作了,但我也想在我的界面中引用这个枚举,我尝试:
/// <reference path="../contracts/CommandEnum.ts" />
namespace ValueTypes {
export interface Command {
type : CommandEnum;
referenceId : string;
}
}
现在,此引用不导入 CommandEnum 类型,但我尝试过的模块/命名空间/导出默认值的其他一些组合可以。 我可以让参考语法工作,但不能让模块语法工作,反之亦然 - 但不能两者兼而有之。
这真的可能吗?使用纯定义接口文件中的枚举似乎是一种非常常见的场景。但是当实现接口时,枚举必须以“函数形式”可用,这两种模型似乎没有结合?
我对类有同样的问题,我想命名空间,.Net 风格 - 我不得不放弃。但是,我的接口中没有引用类 - 枚举是。
我使用 node.js 并编译为单个文件,而不是单个连接输出。
【问题讨论】:
标签: enums typescript