typescript命名空间
2024-08-22 20:41:50
/*
命名空间: 在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内 同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} 在吃猫粮。`);
}
} }
最新文章
- js 键盘移动div、img对象
- NDK 通过java调用so文件
- 到目前为止,Linux下最完整的Samba服务器配置攻略
- svn修改密码跟账户
- Phonegap 版本minSdkVersion为8的时候的自动更新与升级
- JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
- linux 指令备忘
- 【medium】990. Satisfiability of Equality Equations 并查集
- 各种“地”—— 各种“GND”
- [20171211][转载]如何实现dbms_output输出没有打开serveroutput on.txt
- react如何监听路由url变化
- 微信公众号开发遇到simplexml_load_string 未定义
- mongodb morphia删除数组中指定条件的数据
- jsp页面\n换行替换
- (动态规划)matrix -- hdu -- 5569
- spring boot 中使用swagger 来自动生成接口文档
- 在windows下安装配置python开发环境及Ulipad开发工具(转)
- SQL查询遍历数据方法一 [ 临时表 + While循环]
- 用.netcore写一个简单redis驱动,调试windows版本的redis.平且给set和get命令添加参数.
- AssetBundle 在Android机子上进行读取 .