iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
自我挑戰組

從新手開始TypeScript系列 第 29

Day29-TypeScript(TS)的模組(Modules) Part1

今天要來說說TypeScript(TS)的模組(Modules)

模組(Modules)定義在一個單獨單獨的黨之中,
模組的名稱就是檔案名稱(不包含副檔名),
expotimport關鍵字開始的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)的使用方式,
那明天會再帶多點匯出與引用的範例,
倒數一天啦,
大家加油加油喔。


上一篇
Day28-TypeScript(TS)的命名空間(Namespace)
下一篇
Day30-TypeScript(TS)的模組(Modules) Part2
系列文
從新手開始TypeScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Ho.Chun
iT邦新手 5 級 ‧ 2022-07-01 09:21:06

請問 Typescript 中的模組
tsc 之前,跟 ESM / CJS 有什麼關係嗎 ?

我要留言

立即登入留言