TSKaigi2025にオフライン参加してきました!
こんにちは! anyの荒川です。
5/23(金)〜5/24(土)で開催されたTSKaigi2025、盛り上がりましたね!
弊社anyもシルバースポンサーとして参加させていただきました!👏
anyロゴシールを封入しました!
私も両日ともオフラインで参加したため、その参加記を最速で書き上げました!
最初に告知なのですが、弊社any、freeeさん、カミナシさんでTSKaigi2025のAfter Eventを開催します!弊社エンジニアもLTで登壇しますので、ぜひご参加くださいませ。
Day1 感想
The New Powerful ESLint Config with Type Safety
発表者: Anthony Fuさん / NuxtLabs
NuxtLabs勤務で最前線のTypeScriptを取り巻く環境に精通されているAnthonyさんによる、ESLintの最新の話でした。
Flat Configの存在は知っていましたが、どんなメリットがあるかまで理解するには至っていませんでした。しかし、マイグレーションの仕組みやConfig Inspectorのような可視化ツールなど、非常に興味深い話題が多かったです。
ESLintをフォーマッタやCodemodなどの用途で活用されており、もはや一種のDSL、プログラミング言語なのでは?と思うほどの高い柔軟性に驚きました。
機械的にコードを生成するLLMコーディングの時代において、Linterの重要性はより増していくと考えているため、ESLintはこれからもエンジニアと共存していくものだろうと感じました。
スキーマと型で拓く Full-Stack TypeScript
発表者: Sohei Takenoさん / SANU
まず、冒頭の話のなかで触れられていた、フロントを100画面までノーコードツールで開発されていたということで驚きました🤯
そこからTypeScriptでフルスタックとして作り直したとのことで、バックエンドではGraphQLを活用したそうです。弊社もフルスタックTypeScriptでバックエンドがGraphQLなので、「わかる」と感じる話が非常に多かったです。
TypeScriptという観点では、スキーマ定義をすればcodegenでコード生成が可能なので、「どういうスキーマを定義するかが重要」という話には非常に共感を覚えました。
AI Coding Agent Enablement in TypeScript
発表者: Yuku Kotaniさん / Ubie株式会社
AIコーディング時代において「解空間を狭める」という概念は、実プロダクトへの適用を考える上で、さまざまな工夫をする中で共通した目標だなとうなずくばかりでした。 LLMのアーキテクチャ自体に言及し、Decodingの手法としてtop-Kなどではなく、プログラミング向けの手法であるxGrammarを採用する構想があるなどの取り組みも新鮮でした。
抽象度の高い話ながらも説得力が非常にあり、日々現場で試行錯誤されているのだという感覚を持ちました。
デザインシステムとMCPサーバを組み合わせてUI実装を爆速で実現された話は、Ubieさんのブースでもデモを出されており、最先端を追求し続けるUbieさんの技術力の高さを改めて実感しました。
TypeScriptとは何であって何でなく、誰のもので、どこへ向かうのか
発表者: Sosuke Suzukiさん / Ubie株式会社
現在のJavaScript/TypeScriptのエコシステムが確立された流れから、特に型チェック(checker.ts
)が与えた影響の大きさを強く感じました。checker.ts
が2.97MBという非常に大きなファイルであることを知らず、それが本家(Microsoft)以外で抽象化した実装がなかなかできない温床にもなっていたのだと気づかされました。
ちょうどこの日にtsgo
がリリースされ、TypeScriptの型チェックが高速化されることで、エコシステムに破壊的なイノベーションが起きてくるのだと実感しました。
ここからまた大きなうねりが生まれてくるかもしれませんね。
Day2 感想
TypeScriptネイティブ移植観察レポート
発表者: Sosuke Suzukiさん / 一般社団法人TSKaigi Association、株式会社ドワンゴ 教育事業本部
3月に話題になった『A 10x Faster TypeScript』の文脈で、TypeScriptコンパイラがGoで実装されて高速化したという話でした。私はGoが一番好きな言語なので、非常に興味を持っていました。
スライスなどの効率的なデータ構造を利用した基本的なGo言語への置き換えや、Goroutineを活用した並列処理による高速化の話はもちろんのこと、99.99%の互換性を保ちつつも、あえて互換性を残さなかった箇所があるといった話には驚きました。
それほどまでに複雑化した型システムがTypeScriptに構築されているということを改めて実感しました。
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
発表者: mizdraさん / 株式会社はてな
CSS Modulesを活用した開発において、既存のツールがVSCodeにしか対応していないということで、CSS Module Kitという自作ツールを作成したという話でした。全体として、「VSCode以外でも動かしたい」という熱量が伝わるトークで、WebStormを使う自分としては非常に共感できました。
*.tsx
に記載したTypeScriptのコードに対してCSSのLSPを適用するため、ファイル形式を偽装するなど独自の工夫もあり、興味深かったです。VSCodeの実装ではLSPがCSSを読み込んでくれないという話を聞き、LSPにも銀の弾丸ではない箇所があるのだと感じました。
こういった自作系のツールを作り上げている方には頭が上がりませんね😣
複雑なフォームを継続的に開発していくための技術選定・設計・実装
発表者: izumin5210さん / 株式会社LayerX
React Hook Form × Zodで適切なモデリングをするお話で、実用的な内容が多く、非常に共感の多い発表でした。経費精算申請のようなフォームは特に難しいはずで、非常に多様なルールがある中で、モデルとUIを分離することの重要性を改めて理解できました。
jotaiでMobXのように依存性を定義することで、シンタックスとしてはatoms的に書けて、セマンティクスとしてはMobXのようなReactiveな形で実装できるというのは学びでした。
最後の方で言及されていたフォーム開発において、「フォームであることにこだわりすぎない」という一歩俯瞰した視点も良いと感じました。
ちなみにぼくはReact的な書き方よりもクラス(OOP)のほうがしっくりきてしまう民です...
技術書をソフトウェア開発する - jsprimerの10年から学ぶ継続的メンテナンスの技術
発表者: azuさん
これまで(勝手に)何度もWeb上でお世話になっているazuさんの発表でした。
azuさんが約10年携わっている『jsprimer』という技術書のメンテナンスについての話です。
2015年のES2015という大きな変化をきっかけに、ECMAScriptの更新に伴い常にメンテナンスを継続されていることだけでも読者としては感謝しかありませんが、何より書籍の品質にかける熱量が凄まじかったです。
書籍の中でサンプルコードをpower-doctestなどで品質管理されたり、頻度分析や依存関係を見たりするなど、あらゆる角度から品質への取り組みをされているようでした。
また、OSSコミュニティ活動として初心者でも入り込めるような仕組みづくりや、執筆コストに対するスポンサー収益の分配などについても触れられており、azuさん自身がおっしゃっていたように、本気で取り組む書籍執筆はソフトウェア開発そのものだと深く納得させられました。
Lookback TypeScript ESM support and what should we do now.
発表者: Sajiさん / サイボウズ株式会社
CJS/ESMなど、何度学んでもこんがらがる自分にとって、改めてこれらの知識を整理できるセッションでした。
互換性を非常に重要視するJavaScript/TypeScriptにおいて、default exportの問題や非同期importの問題など、現実的な課題の紹介がありました。ライブラリを導入するときにトラブルになることが多いため、改めてしっかり学び直さなければと感じました。
また、node --experimental-strip-types
によりNodeで直接TypeScriptが実行できるようになったとしても、新たに三すくみのインポート問題が発生するという話も非常に興味深かったです。
後半では現状でベストな構成も紹介されており、非常に濃密な内容のセッションでした。
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 〜他言語変換の仕組み〜
発表者: k.gotoさん / 株式会社メイツ
AWS CDKの基礎から、TypeScriptで開発されているCDKを深掘りするセッションでした。
まさにCDKがどのように多言語対応をしているかを知りたかったため、TypeScriptのコードを各言語に変換(jsii経由)しているということは知らず、勉強になりました。
このjsiiというライブラリはAWS製で、「多言語変換」と「通信」の両方を担っているようです。CDK側で実装されたConstructを構造定義だけ変換し、リリース時に中間ファイルやバインディングを生成したり、実行時にnodejsランタイムを起動するなどして、コンパイラのような低レイヤが好きな自分としては、CDKのソースコードを読みたくなるような内容でした。
ブースめぐり & その他
どのブースにおいてもノベルティやギミックがとても凝っていました。
すべてのブースに回らせていただきまして、スタンプラリーも埋められました✌️
ノベルティはすべて紹介したいところなのですが、一番嬉しかったNStockさんのキーキャップストラップ。
会場で提供されたランチも美味しかったです!
さいごに
オフラインのカンファレンスであったこともあり非常に充実した二日間でした!
TSKaigi2025の主催者の方々をはじめ、関係者の方々すべて感謝です。
サイドイベントもよろしくお願いします!
Discussion