我刚刚接触了Typescript,我想要使用相同的命名空间在多个文件中分离很多代码:ProjectName.Validators
。这个命名空间将包含我的项目的一部分,它处理一些验证。
验证包由interface
,exception
类和验证器类(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关键字很多但没有成功。我做错了什么?