- 2025/5/23
- https://2025.tskaigi.org/
The New Powerful ESLint Config with Type Safety
Anthony Fuさん
https://talks.antfu.me/2025/tskaigi
- ESLint
- flat configに設定の書き方が変わった
- 2024/4のv9
- 設定ファイルが.tsで書けるようになった
- Config Inspector
- 設定を視覚化してくれる
--inspect-config
- プラグインの書き方がシンプルになった
- ルールの入力補完
- LintとFormat
- ESLint Stylistic
- autofixでフォーマットも
- ルールに違反する書き方を変えてくれる
- 対象言語が増えてる
checker.tsに対して真剣に向き合う
Kaoruさん(AVITA)
- checker.js
- TypeScriptそのものの型を判別する実装
- コードが巨大なので生成AIに解説させて読むのがいい
TypeScriptで実践するクリーンアーキテクチャ ― WebからもCLIからも使えるアプリ設計
プログラミングをするパンダさん
https://speakerdeck.com/panda_program/clean-architecture-with-typescript-application
- クリーンアーキテクチャ
- 同心円の図だけを見ている人が多い
- クリーンアーキテクチャの本をちゃんと読むといい
- プログラムの構成
- 順次/選択/反復/間接参照
- 手続き型/オブジェクト指向型/関数型
- 実現方法
- SOLID原則
- DIP
- 依存関係逆転の原則
- 呼び出しの流れと依存の流れが一緒じゃなくなる
- DB周りとかUI周りを差し替えられるようになる
- 例
堅牢なデザインシステムをつくるためのTypeScript活用
takanoripさん
https://speakerdeck.com/takanorip/bulletproof-design-system-with-typescript
- デザインシステム
- ルールは守られない
- 善意に頼らない
- 逸脱を検知できるように
- ドキュメントを更新し続ける
- TypsScriptの型定義で強固にする
- 型付け
- StyleDictionaryでトークンを出力
- BrandedTypesで同じnumberでも用途ごとに型付けしたり
- styleの上書き
- JSDocに説明を書く
- JSDocのドキュメントをしっかり書くことでエディタ上で情報を知らせることができる
- deprecatedが分かったり
- ドキュメント
- コンポーネントとJSDocを生成AIに渡して書いてもらうとか
AI Coding Agent Enablement in TypeScript
Yuku Kotaniさん
https://speakerdeck.com/yukukotani/ai-coding-agents-enablement-in-typescript
- AIコーディング
- できるだけ自走してほしい
- 人が介入するサイクルを長くしたい
- デフォルトだと解空間が広すぎる
- 可能な限り制約を与えて答えの範囲を狭める
- コンテキストの注入
- 機械的な検査によるフィードバック
- 型チェック
- 型をつけてるからといって精度が上がるわけではないという研究結果
- anyをつけてるとノイズになって下がる
- 型を書かせようとするとanyとか適当に逃げるコードを出される
- そこをうまくやる仕組みも研究されている
- Linter
- 従来通りの静的チェックは今も有効
- コードを生成しながらのチェックは遅くなってしまう
- 生成AIのチェック判断は本当に正しいかはわからない
- Lintのルールも指摘して書かせる
- 次ミスらないようにルールを書きなさいと
- 従来通りの静的チェックは今も有効
- デザインシステム
- 複雑な型エラーからは次のアクションが分かりづらい
- コード生成に最初から頼ってうまくいかなかったら再生成
TypeScriptとReactで、WAI-ARIAの属性を正しく利用する
ymrlさん(freee)
https://docs.google.com/presentation/d/1rzznSwA7da7S_lU6qyAFuCN9IC1uDJe44PvDg-uqHjQ/edit?slide=id.p
- wai-aria
- 支援技術に対して提供するAccessibilityTreeのあり方の定義
- AccessibilityTreeを操作できる
- ReactとTSでwai-ariaを使う
- Reactの型定義に入ってる
- wai-aria1.1に基づいている
- Reactの型での問題点
TypeScriptとは何であって何でなく、誰のもので、どこへ向かうのか
Sosuke Suzukiさん
- TypeScript
- altJSはいろいろある
- その中でJSのスーパーセット的な位置づけ
- tsc
- 公式のコンパイラーが遅い
- rustとかgo製のものがいろいろ出てる
- 型チェック
- checker.jsがマイクロソフト依存
- TypeScriptファーストな流れ
- フレームワークはTSファースト
- DenoやBunなどTSがそのまま動く
- NodeもTypeAnnotationsという議論で型をコメントとして扱う案
- ツールの高速化
- swc/Turbopack
- vercel
- oxc/vite
- void0
- rspack
- bytedance
- esbuild
- ビルドツールなので型チェックははやくならない
- swc/Turbopack
- tsgo
- 公式がgoで書き直して型チェックを早くする
- 今後
- TSを意識することがなくなっていく
- 意識してビルドするということがなくなっていく
- バックエンドでは特に
- フロントエンドは環境が利用者依存なので事情が違う
- バンドルしたりミニファイしたりビルドのステップは残る
- 小さくするなら型情報も消したい
- TSを意識することがなくなっていく
Rust製JavaScript/TypeScript Linterにおけるプラグイン実装の裏側
unvalleyさん
https://speakerdeck.com/unvalley/typescript-linters