iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
自我挑戰組

從新手開始TypeScript系列 第 28

Day28-TypeScript(TS)的命名空間(Namespace)

今天要跟大家講講TypeScript(TS)的命名空間(Namespace)

命名空間(Namespace)用來將相關的功能打包在一起,
同時可以避免命名衝突的問題。

它在TS1.5版本之後變更命名方式,
內部模組(Internal modules) => 命名空間(Namespace)。

命名空間可以包含變數(Variable)函式(Function)物件(Object)類別(Class)介面(Interface)

注意事項:

  • 命名空間中變數(Variable)介面(Interface)名稱必須唯一、不可重複。
  • 命名空間可以包含命名空間,形成巢狀式命名空間。
  • 命名空間將會編譯成一個JavaScript(JS)物件,屬於全域範圍(Global Scope)

那麼我們來看看命名空間的定義語法吧。

namespace 命名空間名稱 {
    export let 屬性名稱: 屬性型別;
    export function 函式名稱() { };
    export interface 介面名稱 { };
    export class 類別名稱 { };
    export namespace 命名空間名稱 { };
}

命名空間店一時,以namespace關鍵字開始,
接下來是命名空間名稱
程式碼再用 {}符號包起來。

再命名空間中的項目預設只有命名空間內的程式碼可以存取,
若要開放外部存取
需要明確使用export關鍵字才可使用。

反之,
若是要引用命名空間
就必須使用import關鍵字來使用,語法如下。

import 變數名稱=命名空間名稱.成員名稱;

今日結語

今天講了一些命名空間的基本觀念,
若是使用小專案或是件單純的網頁開發,
其實命名空間也相較模組來的單純的多,
下偏就會來介紹一下模組,
大家可以來比較看看,
繼續加油加油喔。


上一篇
Day27-TypeScript(TS)的命名空間(Namespace)與模組(Modules)
下一篇
Day29-TypeScript(TS)的模組(Modules) Part1
系列文
從新手開始TypeScript30

尚未有邦友留言

立即登入留言