Val*_*tin 55
Typescript允许定义与ECMAScript 6中的内容密切相关的模块.以下示例取自规范:
module outer {
var local = 1;
export var a = local;
export module inner {
export var x = 10;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,模块具有名称并且可以嵌套.如果在模块名称中使用点,typescript会将其编译为嵌套模块,如下所示:
module A.B.C {
export var x = 1;
}
Run Code Online (Sandbox Code Playgroud)
这等于
module A {
module B {
module C {
export var x = 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
同样重要的是,如果在一个打字稿程序中重复使用完全相同的模块名称,则代码将属于同一模块.因此,您可以使用嵌套模块来实现层次结构命名空间.
Nik*_*pić 28
从1.5版开始,Typescript支持namespace关键字.命名空间等同于内部模块.
之前:
Run Code Online (Sandbox Code Playgroud)module Math { export function add(x, y) { ... } }后:
Run Code Online (Sandbox Code Playgroud)namespace Math { export function add(x, y) { ... } }
要定义内部模块,现在可以使用module和namespace.
这是一个TypeScript命名空间示例:
///<reference path='AnotherNamespace/ClassOne.ts'/>
///<reference path='AnotherNamespace/ClassTwo.ts'/>
module MyNamespace
{
import ClassOne = AnotherNamespace.ClassOne;
import ClassTwo = AnotherNamespace.ClassTwo;
export class Main
{
private _classOne:ClassOne;
private _classTwo:ClassTwo;
constructor()
{
this._classOne = new ClassOne();
this._classTwo = new ClassTwo();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在这里查看更多信息:http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/
没有'namespace'关键字,但内部模块(使用'module'关键字)和外部模块(使用'export'关键字)提供了一种类似的方法来将代码划分为逻辑层次结构.
| 归档时间: |
|
| 查看次数: |
20376 次 |
| 最近记录: |