Typescript相同的命名空间多个文件

时间:2015-07-13 19:48:10

标签: typescript

我刚刚接触了Typescript,我想要使用相同的命名空间在多个文件中分离很多代码:ProjectName.Validators。这个命名空间将包含我的项目的一部分,它处理一些验证。

验证包由interfaceexception类和验证器类(email,regex,url等)组成。一些验证器类很长,我真的想把它们分成它自己独立的文件。我理想的项目结构如下:

project/
    validators/
        interface.ts
        exception.ts
        email.ts
        url.ts
        regex.ts
        ..... extra classes in ProjectName.validators namespace
    main.ts

问题是我的接口有一个方法接受返回void或我的自定义异常被抛出,我似乎无法在代码中链接该异常,因为ts编译器正在抱怨自异常以来Module ... has no exported member 'Exception'在不同文件中位于同一名称空间的事实。

这是我的界面定义(简化):

/// <reference path="./exception.ts"/>

export module ProjectName.Validators {
    // Interface for all validators (builtin or custom)
    export interface Interface {
        validate(params?: Object): void|ProjectName.Validators.Exception|Error;// this is where I get the error
    }
}

以及我的异常定义:

export module ProjectName.Validators {
    export class Exception extends Error {
        public name: string;
        public stack: string;

        constructor(public message?: string){
            super(message);
        }

        toString() {
            return this.name + ': ' + this.message;
        }
    }
}

正如您所看到的,我尝试使用export关键字很多但没有成功。我做错了什么?

0 个答案:

没有答案