9.命名空間與模塊

命名空間:
在大型項(xiàng)目中,為了避免各種變量名的沖突,是可以將相似功能的函數(shù),類,接口等放入到命名空間(內(nèi)部模塊)中

TypeScript 1.5里術(shù)語名已經(jīng)發(fā)生了變化。 “內(nèi)部模塊”現(xiàn)在稱做“命名空間”。 “外部模塊”現(xiàn)在則簡(jiǎn)稱為“模塊”
命名空間: 側(cè)重于組織代碼,避免沖突
模塊: 側(cè)重代碼復(fù)用, 并且一個(gè)模塊中可以出現(xiàn)多個(gè)命名空間

定義命名空間

export namespace A {
    // 拋出變量
    export const a:number = 1;

    // 拋出類
    export class Dog {
        aname:string;
        constructor(n:string) {
            this.aname = n;
        }
        eat() {
            console.log(`${this.aname}喜歡吃飯`)
        }
    }
}

// 使用命名空間
let kele = new A.Dog('可樂');
let hg = new B.Dog('火鍋');

kele.eat();
hg.eat();

模塊化

將命名空間放入模塊文件中然后拋出

// >modules/Animal.ts

```export namespace A {
    // 拋出變量
    export const a:number = 1;

    // 拋出類
    export class Dog {
        aname:string;
        constructor(n:string) {
            this.aname = n;
        }
        eat() {
            console.log(`${this.aname}喜歡吃飯`)
        }
    }
}

export namespace B {
    export const a:string = 'str';

    export class Dog {
        aname:string;
        constructor(n:string) {
            this.aname = n;
        }
        eat() {
            console.log(`${this.aname}喜歡吃狗糧`)
        }
    }
}

引入到其他文件中

// > 某文件

import {A, B} from './module/Animal';

let kele = new A.Dog('可樂');
let hg = new B.Dog('火鍋');

kele.eat();
hg.eat();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容