MDUI文件
複製 llms.txt 連結複製 llms-full.txt 連結以 Markdown 格式檢視此頁與 ChatGPT 討論此頁內容與 ChatGPT 討論專案完整文件
預設顏色
自選顏色
從桌布擷取顏色
請選擇一張桌布
開發指南
概述 安裝 快速入門 TypeScript 支援 IDE 支援 在地化 常見問題
AI 輔助開發
樣式
與框架整合
元件
函式
獨立程式庫

TypeScript 支援

mdui 是用 TypeScript 開發的,因此對 TypeScript 提供了良好的支援。所有的 mdui 官方庫都自帶型別宣告檔案,可以直接使用。

元件的實例型別

有時,你可能需要將一個 JavaScript 變數斷言為 mdui 的元件實例,這時你可以直接從 mdui 引入對應的元件型別。

例如,從元件檔案中引入 Tooltip 元件的型別:

import type { Tooltip } from 'mdui/components/tooltip.js';

或者直接從 mdui 引入 Tooltip 元件的型別:

import type { Tooltip } from 'mdui';

然後,你就可以將一個 JavaScript 變數斷言成 Tooltip 型別:

const tooltip = document.querySelector('mdui-tooltip') as Tooltip;

此時,IDE 會自動提示 tooltip 變數的屬性和方法。

如果在 tooltip 變數上新增事件監聽,也會自動提示事件名稱、事件型別,以及回呼函式中 this 的指向:

tooltip.addEventListener('open', function (event) {});

事件型別

每個元件都會匯出一個介面,對應元件的事件名稱和事件物件型別,介面名為 ${元件名}EventMap

例如,Tooltip 元件會匯出一個名為 TooltipEventMap 的介面:

export interface TooltipEventMap {
  open: CustomEvent<void>;
  opened: CustomEvent<void>;
  close: CustomEvent<void>;
  closed: CustomEvent<void>;
}

你可以從元件檔案中引入該介面:

import type { TooltipEventMap } from 'mdui/components/tooltip.js';

或者直接從 mdui 引入該介面:

import type { TooltipEventMap } from 'mdui';

請注意,該介面只包含元件特有的事件,但 mdui 元件都繼承自 HTMLElement,所以也支援 HTMLElement 的事件,你可以使用交集型別來取得元件的所有事件型別:

type TooltipAndHTMLElementEventMap = TooltipEventMap & HTMLElementEventMap;
本頁目錄