dom-hierarchy について
ブラウザーの DOM API を扱う TypeScript 開発者向けのスキルです。DOM の型階層を説明し、安全で明確なコードのために最も具体的な型を使う方法を示します。
主な機能
- 01DOM 型階層の解説
- 02要素参照に具体的な型を指定
- 03DOM イベントとユーティリティの型付け
活用シーン
- 01HTML の入力欄やボタンの型付け
- 02DOM ユーティリティの作成
- 03DOM イベントの処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marius-townhouse/ effective-typescript-skills --skill dom-hierarchyインストール後、Claude Code で/dom-hierarchyを入力して読み込まれたか確認します。
詳細
DOM の階層を理解する
概要
TypeScript の DOM 型は、ブラウザーの DOM 階層を正確にモデル化しています。この階層(Element が Node を継承し、HTMLElement が Element を継承するなど)を理解すると、正しい DOM コードを書けるようになります。より優れた自動補完と型安全性のために、できるだけ具体的な型を使用してください。
このスキルを使う場面
- DOM API を操作するとき
- 要素の参照に型を指定するとき
- DOM ユーティリティを作成するとき
- DOM イベントを処理するとき
- DOM を操作するとき
絶対的なルール
できるだけ具体的な DOM 型を使用してください。HTML 要素には HTMLElement、入力要素には HTMLInputElement などを使います。
DOM の型階層
EventTarget
└── Node
└── Element
└── HTMLElement
│ └── HTMLInputElement
│ └── HTMLButtonElement
│ └── etc.
└── SVGElement
例
// BAD: Too general
const el: Element = document.getElementById('input');
el.value; // Error: Property 'value' doesn't exist on Element
// GOOD: Specific type
const input = document.getElementById('input') as HTMLInputElement;
input.value; // OK - value exists on HTMLInputElement
// Even better: Use querySelector with type parameter
const button = document.querySelector<HTMLButtonElement>('button.submit');
button?.disabled; // Typed correctly
参考文献
- Dan Vanderkam 著『Effective TypeScript』第 2 版
- 項目 75:DOM の階層を理解する
コメント
Markdown 対応