第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

TypeScript 命名空間

命名空間同樣是為了避免變量命名沖突,TypeScript 官方將命名空間視為“內(nèi)部模塊”,上節(jié)介紹的模塊被視為“外部模塊”。

如果聲明相同名稱的命名空間,TypeScript 編譯器會(huì)將其合并為一個(gè)聲明,具體的合并規(guī)則會(huì)在下節(jié)介紹。

1. 慕課解釋

使用 namespace 關(guān)鍵字來聲明命名空間。

TypeScript 的命名空間可以將代碼包裹起來,只對(duì)外暴露這個(gè)命名空間對(duì)象,通過 export 關(guān)鍵字將命名空間內(nèi)的變量掛載到命名空間對(duì)象上。

2. 命名空間的本質(zhì)

命名空間本質(zhì)上就是一個(gè)對(duì)象,將其內(nèi)部的變量組織到這個(gè)對(duì)象的屬性上:

namespace Calculate {
  const fn = (x: number, y: number) => x * y 
  export const add = (x: number, y:number) => x + y
}

來看其編譯后的結(jié)果:

"use strict";
var Calculate;
(function (Calculate) {
    var fn = function (x, y) { return x * y; };
    Calculate.add = function (x, y) { return x + y; };
})(Calculate || (Calculate = {}));

那么,我們就可以訪問 Calculate 對(duì)象上的 add 屬性了:

Calculate.add(2, 3)

命名空間主要是為解決全局作用域內(nèi)重名問題,而這一問題隨著模塊化編程的使用,已經(jīng)得到了解決。

3. 小結(jié)

通過本節(jié)的介紹,知道命名空間的使用方法即可,在 TypeScript 中一般不推薦使用。