visual-studio-2013 - 如何在定义文件中引用 Typescript 枚举

标签 visual-studio-2013 enums requirejs typescript amd

我正在使用安装了更新 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
  • -MyEnums.ts

  • 定义
  • -MyDefintions.d.ts
  • 在 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/

    相关文章:

    user-interface - Visual Studio 2013 : What do the number suffixes in the file tabs mean?

    visual-studio - Visual Studio源代码管理资源管理器访问被拒绝

    arrays - 为什么数组不符合 Equatable,而它的项在 Swift 中是 Equatable 的?

    c++ - 如何在 C++ 代码中使用 "c-style flags enum"?

    c# - 确定对象是否为 DateTime 而非 null 作为三元中的条件

    java - 检查枚举值,然后添加另一个字段(Java)

    javascript - polymer + requirejs : Attributes on were data bound prior to Polymer upgrading the element

    javascript - require.js 未捕获类型错误 : cannot read property '__module_path__; of undefined

    javascript - 使用 TypeScript 定义 Durandal ViewModel

    sql - Visual Studio 2013 创建 SQL 触发器错误