命名空间
随着项目结构变大,代码中可能出现重复函数名、变量名互相覆盖的问题,这可以用命名空间和模块解决。
实际上,只用模块其实已经可以较好的解决这个问题了,但是TypeScript额外引入了命名空间的概念,可以将代码划分的更细致。TypeScript中,命名空间的用法和C#
很像。
定义命名空间
下面代码在命名空间userManagement
中定义和类User
:
namespace userManagement {
// 需要在命名空间外调用的类、接口等,需要用export声明
export class User {
username:string;
password:string;
constructor(username: string, password: string) {
this.username = username;
this.password = password;
}
}
}
let user:userManagement.User = new userManagement.User('Tom', 'abc123');
console.log(user);
引用命名空间中的内容时,使用命名空间.类名
就可以了。
此外,命名空间是支持嵌套的:
namespace BusinessService {
export namespace UserManagement {
// 需要在命名空间外调用的类、接口,需要用export声明
export class User {
username:string;
password:string;
constructor(username: string, password: string) {
this.username = username;
this.password = password;
}
}
}
}
let user:BusinessService.UserManagement.User = new BusinessService.UserManagement.User('Tom', 'abc123');
console.log(user);
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。