zoukankan      html  css  js  c++  java
  • typescript命名空间

    /*
    命名空间:
    
        在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内
    
        同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} 在吃猫粮。`);
            }
        }   
    
    }
  • 相关阅读:
    MFC添加图标到托盘
    MFC中CString转int,double
    c语言练习13——打印出所有的“水仙花数”
    c语言练习12——判断101-200 之间有多少个素数,并输出所有素数
    c语言练习11——兔子问题
    c语言练习10——输出国际象棋棋盘
    c语言练习9——打印楼梯和笑脸
    c语言练习8——输出9*9 乘法表
    c语言练习7——输出特殊图案
    c语言练习6——用*号输出字母C的图案
  • 原文地址:https://www.cnblogs.com/loaderman/p/11041025.html
Copyright © 2011-2022 走看看