/*
命名空间: 在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内 同Java的包、.Net的命名空间一样,TypeScript的命名空间可以将代码包裹起来,只对外暴露需要在外部访问的对象。命名空间内的对象通过export关键字对外暴露。 命名空间和模块的区别: 命名空间:内部模块,主要用于组织代码,避免命名冲突。 模 块:ts的外部模块的简称,侧重代码的复用,一个模块里可能会有多个命名空间。 */ namespace A{
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃狗粮。`);
}
} export class Cat implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 吃猫粮。`);
}
} } namespace B{
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃狗粮。`);
}
} export class Cat implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃猫粮。`);
}
} } var c=new B.Cat('小花'); c.eat();

/*
命名空间: 在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内 同Java的包、.Net的命名空间一样,TypeScript的命名空间可以将代码包裹起来,只对外暴露需要在外部访问的对象。命名空间内的对象通过export关键字对外暴露。 命名空间和模块的区别: 命名空间:内部模块,主要用于组织代码,避免命名冲突。 模 块:ts的外部模块的简称,侧重代码的复用,一个模块里可能会有多个命名空间。 */ import {A,B} from './modules/animal'; var d=new A.Dog('小黑');
d.eat(); var dog=new B.Dog('小花');
dog.eat();
export namespace A{
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃狗粮。`);
}
} export class Cat implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 吃猫粮。`);
}
} } export namespace B{
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃狗粮。`);
}
} export class Cat implements Animal {
name: string;
constructor(theName: string) {
this.name = theName;
} eat() {
console.log(`${this.name} 在吃猫粮。`);
}
} }

最新文章

  1. js 键盘移动div、img对象
  2. NDK 通过java调用so文件
  3. 到目前为止,Linux下最完整的Samba服务器配置攻略
  4. svn修改密码跟账户
  5. Phonegap 版本minSdkVersion为8的时候的自动更新与升级
  6. JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
  7. linux 指令备忘
  8. 【medium】990. Satisfiability of Equality Equations 并查集
  9. 各种“地”—— 各种“GND”
  10. [20171211][转载]如何实现dbms_output输出没有打开serveroutput on.txt
  11. react如何监听路由url变化
  12. 微信公众号开发遇到simplexml_load_string 未定义
  13. mongodb morphia删除数组中指定条件的数据
  14. jsp页面\n换行替换
  15. (动态规划)matrix -- hdu -- 5569
  16. spring boot 中使用swagger 来自动生成接口文档
  17. 在windows下安装配置python开发环境及Ulipad开发工具(转)
  18. SQL查询遍历数据方法一 [ 临时表 + While循环]
  19. 用.netcore写一个简单redis驱动,调试windows版本的redis.平且给set和get命令添加参数.
  20. AssetBundle 在Android机子上进行读取 .

热门文章

  1. java AST JCTree简要分析
  2. 最小生成树:Tree
  3. Chocolatey——windows下的包管理器
  4. RCNN,Fast RCNN,Faster RCNN 的前生今世:(4) Fast RCNN 算法详解
  5. 双向认证下rpc-gateway使用(同时提供rpc和http服务)
  6. python链接oracle数据库以及数据库的增删改查实例
  7. js判断radio选中状态
  8. AtCoder Grand Contest 009 题解
  9. 【一起来烧脑】一步学会Vue.js系统
  10. php-fpm 参数调优