我正在使用安装了更新 4 和 Typescript 1.3 的 Visual Studio 2013。
如果我有一个 typescript 文件,像这样:
MyEnums.ts:
export = MyEnumModule;
module MyEnumModule {
export enum AnEnum { RED, BLUE, GREEN }
}
我有一个这样的定义文件:
我的定义.d.ts:
declare module MyDefinitions {
interface ISomeInterface {
aProperty: string;
aMethod: () => void;
aColor: MyEnumModule.AnEnum;
}
}
我基本上收到“无法找到名称‘MyEnumModule’”的错误
从 typescript 文件引用时,此枚举文件工作正常。例如:
一些代码.ts:
export = MyCode;
import MyEnums = require('MyEnums');
module MyCode{
export class MyClass implements ISomeInterface {
public aColor: MyEnums.AnEnum = MyEnums.AnEnum.RED;
...and so on
我的理解是添加 /// <reference
... 或者导入不适用于 .d.ts 文件(我只是想确定一下,但它似乎并没有以任何方式工作)。
有谁知道如何在这样的定义文件中引用枚举?
提前致谢。
--更新:
这是我在尝试下面的 Steve Fenton 建议(使用我刚刚制作的示例项目)后看到的错误。
MyDefinitions.ts:
import MyEnumModule = require('../App/MyEnums');
declare module MyDefinitions {
interface ISomeInterface {
aProperty: string;
aMethod: () => void;
aColor: MyEnumModule.AnEnum;
}
}
MyEnums.ts:
export = MyEnumModule;
module MyEnumModule {
export enum AnEnum { RED, BLUE, GREEN }
}
MyClass.ts:
export = MyCode;
import MyImport = require('MyEnums');
module MyCode {
export class MyClass implements MyDefinitions.ISomeInterface {
public aColor: MyImport.AnEnum = MyImport.AnEnum.RED;
constructor() { }
aProperty: string = "";
aMethod: () => void = null;
}
文件夹结构:
应用程序
定义
在 MyClass.ts 内部,MyDefinitions.ISomeInterface 带有红色下划线和悬停警告“找不到名称 MyDefinitions”。
我为项目设置了 AMD
最佳答案
Does anyone know how to reference an enum in a definition file like this?
正如 Steve Fenton 指出的那样,有解决方法,但系统并非为此而设计。您应该在您的定义文件中引用其他定义文件,而不是在定义中引用*实现文件* (MyEnum.ts
)文件。
关于visual-studio-2013 - 如何在定义文件中引用 Typescript 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27068138/