多个相同命名空间会合并
(1)给类添加静态成员
class C {
}
namespace C {
export let x: number;
}
let y = C.x;
(2)给类添加一个命名空间类型
class C {
}
namespace C {
export interface D { }
}
let y: C.D;
(3)可以给接口、类、函数、类型别名(type)、枚举类型添加(不能给变量添加)
类和函数需要将命名空间放在其后
namespace X {
export interface Y { z:number }
export class Z { }
}
namespace X {
export var Y: number;
export namespace Z {
export class C { }
}
}
type X = string;
// interface X { };
// function X(){}
let c: X.Y = {z:3};
解析:
第一个代码块创建了以下名字与含义:
一个值X(因为namespace声明包含一个值,Z)
一个命名空间X(因为namespace声明包含一个值,Z)
在命名空间X里的类型Y
在命名空间X里的类型Z(类的实例结构)
值X的一个属性值Z(类的构造函数)
第二个代码块创建了以下名字与含义:
值Y(number类型),它是值X的一个属性
一个命名空间Z
值Z,它是值X的一个属性
在X.Z命名空间下的类型C
值X.Z的一个属性值C
类型X
typescript namespace声明添加新类型、值和命名空间
最新推荐文章于 2024-11-17 14:52:40 发布