我在Typescript中定义了以下模块
declare module MyTypes {
export enum MyEnum {
GOOD = 'Good',
BAD = 'Bad',
UNKNOWN = '-'
}
export interface MyType1 {
myType1:string
}
}
export default MyTypes;
在一个单独的文件中,我将其导入为:
import MyTypes from '/my-types'
import MyType1 = MyTypes.MyType1
import MyEnum = MyTypes.MyEnum
当我在代码中引用MyEnum.GOOD,
时,Chrome在控制台上返回了一个异常MyTypes
,但未定义。从打字稿中的模块导入枚举的合适方法是什么?
答案 0 :(得分:2)
使用声明时,打字稿不会不创建任何javascript代码,这仅表示该脚本已经存在。使用接口,所有这些都应该工作良好,因为它们只是在运行时被剥离了。另一方面,枚举具有实际的字符串值,例如“ Good”。
您只需删除declare关键字,这一切都应该起作用。
module MyTypes {
export enum MyEnum {
GOOD = 'Good',
BAD = 'Bad',
UNKNOWN = '-'
}
export interface MyType1 {
myType1:string
}
}
export default MyTypes;
仅供参考,您在javascript中的枚举应如下所示:
export var MyEnum;
(function (MyEnum) {
MyEnum["GOOD"] = "Good";
MyEnum["BAD"] = "Bad";
MyEnum["UNKNOWN"] = "-";
})(MyEnum || (MyEnum = {}));