typescript namespace声明添加新类型、值和命名空间

多个相同命名空间会合并

(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

猜你喜欢

转载自blog.csdn.net/weixin_43294560/article/details/114240892