Typescript 2枚举接口和类之间的引用

时间:2016-12-08 21:54:42

标签: angular typescript visual-studio-2015 enums interface

我正在使用Visual Studio 2015 update 3和Typescript 2.0。我正在使用Angular 2。

如果我有一个打字稿文件,如下:

MyEnums.ts:

export enum myEnum { RED, BLUE, GREEN }

我在这样的文件中有一个接口:

types.ts:

namespace MyTypes {
    export interface ISomeInterface {

        aMethod: (aColor: MyEnum) => void;

    }
    export interface IMyService {
        myMethod: () => void;
    }

}

第一个接口的实现类:

SomeCode.ts:

export class SomeClass implements ISomeInterface {

        public aMethod(aColor: MyEnum){

        }
        ...and so on

Angular服务:

SomeCode.ts:

import { Injectable } from "@angular/core";
import { SomeClass } from "path to SomeClass file";
import { MyEnum } from "path to MyEnum file";

@Injectable()
export class MyService implements IMyService {

        public myMethod(){
            let localSomeClass: ISomeInterface = new SomeClass();
            localSomeClass.aMethod(MyEnum.RED);
        }
        ...and so on

如果我只是将枚举放在类型文件中,那么所有东西都像冠军一样构建,但当然事情在运行时失败,因为没有实际的枚举实现存在。当我创建上面的文件时,VS无法找到type.ts文件的ISomeInterface的枚举定义......

有没有人知道在定义文件和实现类文件中引用枚举的正确方法?

如果我将枚举导入到types.ts文件中:

import { MyEnum } from "path to MyEnum file";

namespace MyTypes {
    export interface ISomeInterface {
        ... 
}

然后VS不再查找并解析types.ts和SomeCode.ts不再识别ISomeInterface。

0 个答案:

没有答案