MDUIDocs
llms.txt のリンクをコピーllms-full.txt のリンクをコピーMarkdown 形式でこのページを表示このページの内容について ChatGPT と相談するプロジェクトの完全なドキュメントについて ChatGPT と相談する
プリセットカラー
カスタムカラー
壁紙から色を抽出
壁紙を選択してください
開発ガイド
概要 インストール クイックスタート TypeScript サポート IDE サポート ローカライズ よくある質問
AI 補助開発
スタイル
フレームワークとの統合
コンポーネント
関数
独立パッケージ

TypeScript サポート

mdui は TypeScript で開発されているため、TypeScript に対して優れたサポートを提供しています。すべての mdui 公式ライブラリには型定義ファイルが付属しており、そのまま使用できます。

コンポーネントのインスタンス型

場合によっては、JavaScript 変数を mdui のコンポーネントインスタンスとして型アサーションする必要があります。その場合は、mdui から対応するコンポーネントの型を直接インポートできます。

例えば、コンポーネントファイルからツールチップコンポーネントの型をインポートするには:

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

または、mdui から直接ツールチップコンポーネントの型をインポートするには:

import type { Tooltip } from 'mdui';

そして、JavaScript 変数をツールチップ型に型アサーションできます:

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

これにより、IDE は tooltip 変数のプロパティとメソッドを自動的に提案します。

tooltip 変数にイベントリスナーを追加すると、イベント名、イベントタイプ、およびコールバック関数内の this の参照先も自動的に提案されます:

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

イベント型

各コンポーネントは、コンポーネントのイベント名とそれに対応するイベントオブジェクトの型をマッピングするインターフェースをエクスポートします。インターフェース名は ${コンポーネント名}EventMap です。

例えば、ツールチップコンポーネントは 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 のイベントもサポートしています。交差型(intersection type)を使用して、コンポーネントのすべてのイベント型を取得できます:

type TooltipAndHTMLElementEventMap = TooltipEventMap & HTMLElementEventMap;
このページの目次