Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Baseline対応のDOMの型定義を作った
Search
uhyo
July 07, 2026
Technology
890
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Baseline対応のDOMの型定義を作った
2026-07-08 Nihonbashi.js #11
uhyo
July 07, 2026
More Decks by uhyo
See All by uhyo
型があると何が嬉しいか
uhyo
2
74
AIのReact習熟度を測る
uhyo
2
970
React、まだ楽しくて草
uhyo
7
4.9k
TypeScript 7.0の現在地と備え方
uhyo
6
3.8k
React 19時代のコンポーネント設計ベストプラクティス
uhyo
20
10k
型定義でAIと会話する:型を通じてAIに意図を伝えるテクニック
uhyo
1
110
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
3
1.2k
ECMAScript仕様の最新動向: プロセスの変化と仕様のトレンド
uhyo
3
950
TypeScript 6.0で非推奨化されるオプションたち
uhyo
18
8.6k
Other Decks in Technology
See All in Technology
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
740
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
140
bet_ai_day_2026_session02
agenticsec
1
810
[RSJ26] AnoleVLA: Lightweight Vision-Language-Action Model with Deep State Space Models for Mobile Manipulation
keio_smilab
PRO
0
120
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
180
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
140
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
370
Azure Cost Management の FOCUS コストデータを迷わず読むための“3つの軸”
tetsuyaooooo
0
130
V8コントリビュート超入門
riyaamemiya
0
130
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
140
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Building the Perfect Custom Keyboard
takai
2
860
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Writing Fast Ruby
sferik
630
63k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
180
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
520
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
370
Faster Mobile Websites
deanohume
310
32k
Transcript
Baseline対応のDOMの 型定義を作った 2026-07-08 Nihonbashi.js #11
発表者紹介 uhyo 株式会社カオナビ フロントエンドエキスパート 実はTypeScriptに詳しい。 2
Baselineとは ウェブ機能を、ブラウザサポート状況によって 分類するもの Baseline Newly available = 全てのブラウザで利用可能 Baseline Widely
available = 全てのブラウザで利用可能 になってから30ヶ月が経過 3
固定ターゲット Baseline 2023 = 2023年までにNewly availableに なった機能 Baseline 2024, Baseline
2025, …… 4
開発でよくある推奨環境の決め方 •推奨環境: 各ブラウザの最新版 = Baseline Newly Available に対応 •より広くサポートしたい(大抵はiOS) =
Baseline Widely Available やBaseline 2024 などを使用 5
型チェックしたい 例: Baseline Widely Availableではない機能を 使おうとしたら型エラーになってほしい。 (eslint-plugin-baseline-jsもあるけど型情報が必要な野良プラグインは 今ちょっと辛い立ち位置) 6
@baseline-types/dom-widely-available TypeScript本体のLib Replacement機能を使用 して、DOMの型定義をBaseline Widely Available に合わせたライブラリを作りました。 7
導入方法 8 @baseline-types/dom-widely-availableを、 @typescript/lib-domという名前でインストール。
導入方法 9 tsconfig.jsonでlibReplacementを有効化。 これにより@typescript/lib-domが認識される ようになる。
結果 Newly Availableなメソッドを使うと型エラーが出 るようになった! 10
バリエーション @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
バリエーション @baseline-types/dom-newly-available に変えると 型エラーが消えるぞ! 12
仕組み TypeScriptのTypeScript-DOM-Lib-Generatorを フォーク。 すでにあるもの: WebIDLから型定義を生成 作ったもの: 型をBaselineの情報を使ってフィルタ リングする仕組み https://github.com/uhyo/TypeScript-Baseline-Types 13
週1自動更新 毎週自動更新で最新のBaseline情報をお届け。 バージョン名に日付を含めたのでいつ時点の 情報か分かりやすい! 14
今後の展望 全部AIにやってもらったので若干フィルタリング 結果が怪しいときがある。引き続き調整します。 DOM以外(ECMAScript)のBaseline対応も したら面白そうだけど全然違う仕組みが必要に…… 15
まとめ @baseline-types/dom-widely-availableとかを 使って型でBaseline対応しよう! 16