今天要來說說TypeScript(TS)的模組(Modules),
模組(Modules)定義在一個單獨單獨的黨之中,
模組的名稱就是檔案名稱(不包含副檔名),
以expot或import關鍵字開始的ts檔案,
就會被視為一個模組。
它在TS1.5版本之後變更命名方式,
外部模組(External modules) => 模組(Modules)。
模組不同於全域範圍(Global Scope)的命名空間,
他執行在自己的範圍(Scope),
因此宣告在模組中的變數、函式、類別...等模組外部的程式碼,
預設將無法存取,
若要讓模組外部的程式碼可以存取,
可以使用export關鍵字匯出成員,
讓模組外部存取。
反之,
模組可以使用import關鍵字來引用其他模組。
那麼我們來看看範例吧。
首先,在以建好的環境下建一個檔案,
命名為export.ts(範例用,可依需求任意命名),
表示要匯出的成員檔案,
程式碼內容如下,
export class Employee {
constructor(public empId: number, public empName: string) {
}
getInfo() {
return ` ${this.empId} , ${this.empName} `;
}
}
export let projectName = "HR Management";
我在裡面宣告類別命名為Employee
與變數命名為projectName
值為一字串。
這些成員因為等等都需要讓模組外部去引用,
因此,在這些成員前方都加上export關鍵字以匯出成員。
接著來看看外部引用的部份吧,
在剛剛的專案再建立一個檔案,
命名為import.ts(範例用,可依需求任意命名),
表示要引用其他模組成員檔案,
程式碼內容如下,
import { Employee, projectName } from "./export";
let emp = new Employee(1, "Mary");
console.log(emp.getInfo()); // 1,Mary
console.log(projectName); // HR Management
那麼我們來逐行解析吧,
要引用外部成員最前方先加入import關鍵字,
接著用 {} 符號刮住要引用的成員名稱,
複數成員用 , 隔開,
後面加上from後接字串,
字串為要引用的檔案位置,
./export表示在同層資料夾的export檔名,
特別注意,
這裡不需要加副檔名喔。
接著底下最引用就跟在同個檔案內使用是一樣的,
設一個變數為emp,
使用new接上類別,
後傳入參數數字1與字串Mary,
就會依照export.ts檔案內的函式執行使用,
表示引用成功了喔。
今天帶大家看看基本的模組(Modules)的使用方式,
那明天會再帶多點匯出與引用的範例,
倒數一天啦,
大家加油加油喔。