模块的声明

使用module关键字来定义模块,并在末尾加花括号即可用; 用export关键字使接口、类等成员对模块外可见。

moduleValidation{//定义模块

  exportinterfaceStringValidator{//声明接口对外部可以使用

  isAcceptable(s:string):boolean;

}

varlettersRegexp=/^[A-Za-z]+$/;

varnumberRegexp=/^[0-9]+$/;

exportclassLettersOnlyValidatorimplementsStringValidator{//声明类对外部可用

   isAcceptable(s:string){

  returnlettersRegexp.test(s);

     }

}

exportclassZipCodeValidatorimplementsStringValidator{

           isAcceptable(s:string){

          returns.length===5&&numberRegexp.test(s);

 }

}

}

在模块声明完成以后,我们就可以调用这个模块了,调用模块中的接口、类、方法等。调用方法简单,就是用模块名后面跟一个点来调用类、接口、方法等。

varstrings=['Hello','98052','101'];

varvalidators:{[s:string]:Validation.StringValidator;}={};

validators['ZIP code']=newValidation.ZipCodeValidator();//使用模块中的类

validators['Letters only']=newValidation.LettersOnlyValidator();

// 显示匹配结果

for(vari=0;i

for(varnameinvalidators){

document.write('"'+strings[i]+'" '+(validators[name].isAcceptable(strings[i])?' matches ':' does not match ')+name+"
");// 使用方法

}

}

分隔模块到多个文件:随着我们项目的扩展,我们的代码总不可能只写在一个文件里。为了更好地维护项目,我们会将特定功能放到一个文件里,然后加载多个文件实现我们想需要的功能。现在我们先将上面的代码分割到多个文件里。

Validation.ts

moduleValidation{

exportinterfaceStringValidator{

isAcceptable(s:string):boolean;

}

}

LettersOnlyValidator.ts

///

moduleValidation{

varlettersRegexp=/^[A-Za-z]+$/;

exportclassLettersOnlyValidatorimplementsStringValidator{

isAcceptable(s:string){

returnlettersRegexp.test(s);

}

}

}

ZipCodeValidator.ts

///

moduleValidation{

varnumberRegexp=/^[0-9]+$/;

exportclassZipCodeValidatorimplementsStringValidator{

isAcceptable(s:string){

returns.length===5&&numberRegexp.test(s);

}

}

}

Test.ts

varstrings=['Hello','98052','101'];

varvalidators:{[s:string]:Validation.StringValidator;}={};

validators['ZIP code']=newValidation.ZipCodeValidator();

validators['Letters only']=newValidation.LettersOnlyValidator();

for(vari=0;i

for(varnameinvalidators){

document.write('"'+strings[i]+'" '+(validators[name].isAcceptable(strings[i])?' matches ':' does not match ')+name+"
");//调用类的方法

}

}

在项目中新建好以上四个文件,然后我们编译项目,如果我们代码编写没错的话,是能够编译通过的。另外,我们可以见到后面三个文件开头有类似于 C# 的文档注释,这是告诉TypeScript编译器该文件依赖于哪些文件,假如依赖的文件不存在的话,编译就会不通过。当然我们不写也是可以的,只不过编译器在编译时不会帮我们检查,一般来说,还是建议写上。 另外,在引用编译生成的 JavaScript 文件时,我们需要注意好顺序。以上面的代码为例,我们在 Html 代码中已经这么引用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,877评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,270评论 3 53
  • 一. Java基础部分.................................................
    wy_sure阅读 3,882评论 0 11
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,942评论 0 27