我正在使用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。