Baseline対応のDOMの型定義を作った
by
uhyo
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Baseline対応のDOMの 型定義を作った 2026-07-08 Nihonbashi.js #11
Slide 2
Slide 2 text
発表者紹介 uhyo 株式会社カオナビ フロントエンドエキスパート 実はTypeScriptに詳しい。 2
Slide 3
Slide 3 text
Baselineとは ウェブ機能を、ブラウザサポート状況によって 分類するもの Baseline Newly available = 全てのブラウザで利用可能 Baseline Widely available = 全てのブラウザで利用可能 になってから30ヶ月が経過 3
Slide 4
Slide 4 text
固定ターゲット Baseline 2023 = 2023年までにNewly availableに なった機能 Baseline 2024, Baseline 2025, …… 4
Slide 5
Slide 5 text
開発でよくある推奨環境の決め方 •推奨環境: 各ブラウザの最新版 = Baseline Newly Available に対応 •より広くサポートしたい(大抵はiOS) = Baseline Widely Available やBaseline 2024 などを使用 5
Slide 6
Slide 6 text
型チェックしたい 例: Baseline Widely Availableではない機能を 使おうとしたら型エラーになってほしい。 (eslint-plugin-baseline-jsもあるけど型情報が必要な野良プラグインは 今ちょっと辛い立ち位置) 6
Slide 7
Slide 7 text
@baseline-types/dom-widely-available TypeScript本体のLib Replacement機能を使用 して、DOMの型定義をBaseline Widely Available に合わせたライブラリを作りました。 7
Slide 8
Slide 8 text
導入方法 8 @baseline-types/dom-widely-availableを、 @typescript/lib-domという名前でインストール。
Slide 9
Slide 9 text
導入方法 9 tsconfig.jsonでlibReplacementを有効化。 これにより@typescript/lib-domが認識される ようになる。
Slide 10
Slide 10 text
結果 Newly Availableなメソッドを使うと型エラーが出 るようになった! 10
Slide 11
Slide 11 text
バリエーション @baseline-types/dom-widely-available @baseline-types/dom-newly-available @baseline-types/dom-2022 @baseline-types/dom-2023 @baseline-types/dom-2024 @baseline-types/dom-2025 11
Slide 12
Slide 12 text
バリエーション @baseline-types/dom-newly-available に変えると 型エラーが消えるぞ! 12
Slide 13
Slide 13 text
仕組み TypeScriptのTypeScript-DOM-Lib-Generatorを フォーク。 すでにあるもの: WebIDLから型定義を生成 作ったもの: 型をBaselineの情報を使ってフィルタ リングする仕組み https://github.com/uhyo/TypeScript-Baseline-Types 13
Slide 14
Slide 14 text
週1自動更新 毎週自動更新で最新のBaseline情報をお届け。 バージョン名に日付を含めたのでいつ時点の 情報か分かりやすい! 14
Slide 15
Slide 15 text
今後の展望 全部AIにやってもらったので若干フィルタリング 結果が怪しいときがある。引き続き調整します。 DOM以外(ECMAScript)のBaseline対応も したら面白そうだけど全然違う仕組みが必要に…… 15
Slide 16
Slide 16 text
まとめ @baseline-types/dom-widely-availableとかを 使って型でBaseline対応しよう! 16