略。
https://www.tslang.cn/docs/handbook/namespaces.htmljavascript
如今,咱们把Validation命名空间分割成多个文件。 尽管是不一样的文件,它们还是同一个命名空间,而且在使用的时候就如同它们在一个文件中定义的同样。 由于不一样文件之间存在依赖关系,因此咱们加入了引用标签来告诉编译器文件之间的关联。 咱们的测试代码保持不变。html
Validation.tsjava
namespace Validation { export interface StringValidator { isAcceptable(s: string): boolean; } }
LettersOnlyValidator.tstypescript
/// <reference path="Validation.ts" /> namespace Validation { const lettersRegexp = /^[A-Za-z]+$/; export class LettersOnlyValidator implements StringValidator { isAcceptable(s: string) { return lettersRegexp.test(s); } } }
ZipCodeValidator.tsmarkdown
/// <reference path="Validation.ts" /> namespace Validation { const numberRegexp = /^[0-9]+$/; export class ZipCodeValidator implements StringValidator { isAcceptable(s: string) { return s.length === 5 && numberRegexp.test(s); } } }
Test.tsasync
/// <reference path="Validation.ts" /> /// <reference path="LettersOnlyValidator.ts" /> /// <reference path="ZipCodeValidator.ts" /> // Some samples to try let strings = ["Hello", "98052", "101"]; // Validators to use let validators: { [s: string]: Validation.StringValidator; } = {}; validators["ZIP code"] = new Validation.ZipCodeValidator(); validators["Letters only"] = new Validation.LettersOnlyValidator(); // Show whether each string passed each validator for (let s of strings) { for (let name in validators) { console.log(`"${ s }" - ${ validators[name].isAcceptable(s) ? "matches" : "does not match" } ${ name }`); } }
第一种方式,略。
第二种方式,咱们能够编译每个文件(默认方式),那么每一个源文件都会对应生成一个JavaScript文件。 而后,在页面上经过 post