6/12(金)に開催されたTSKaigi アフターパーティーに参加してきました。

拝聴したセッション

翻訳辞書にも型が欲しい TypeScriptで考えるのi18n

登壇者: 黒髙 未知可 さん

資料URL: https://speakerdeck.com/everypr/deng-tan-zi-liao-fan-yi-ci-shu-nimoxing-gahosii-ypecriptdekao-erui18n

Next.jsにおいて型安全にi18nを管理するnext-intlについて紹介するセッションでした。

localeのkeyの形が場所によって違うケースとかが問題になりやすいという話があり、自分の開発や職場の開発でもありがちかもと思って共感していました。

{
  "book": {
    "title": "the book"
  },
  "movie": {
    "filmTitle": "the movie"
  }
}

Nextはあまり触れていないけど、それ以外のライブラリを探して実践してみるのはありかもと思えた。

ただ、TSで型をつけるとモジュールやファイルが増えてしまうというトレードオフはあるので、localeの実装が必要なグローバルなプロダクトでないと、そこまでやる必要はないのかもと思えた。


neverthrow is not for meを再考する

登壇者: 我らが Rinrin

資料URL: https://www.docswell.com/s/rin2yh/Z4N4NW-rethinking-neverthrow-is-not-for-me

neverthrow(TSのResult型を実現するライブラリ)について、確かに関数型っぽくなるけど、独特の記法や認知負荷が高いと一度は敬遠していたものの、今一度考えてみて使い方を工夫することで、それを乗り越えたという話だった。

不便なAPIがある = 使いづらいではなく、

  • 使いづらいAPIは使わない
  • ラッパーを作って使いやすくする

という工夫をすることで、その課題を乗り越えられるという話があった。

また、AI時代だからと言って自作をすると管理コストが肥大化してしまう可能性があるという話を聞いて、(もちろんサプライチェーン攻撃とのトレードオフになるが)そのコストの大きさを考えると責任が大きいライブラリなどは自作するのではなく、ライブラリを使う方がいいのかもと思えた。

また、neverthrowを含む関数型TSが使える部分って、ライブラリに try/catch 前提の動作が組み込まれていることが多く、フロントエンドは適していないという話があり、Nuxtを触ってる身からすると共感できる部分が多かった。


Type SafeなCSSで実現する統一感のあるスタイリング

登壇者: 長谷川 駿 さん

資料URL: https://www.docswell.com/s/WN_Tech-PR/KE1Y1D-2026-06-12-194556

CSS + 型 の実現方法について紹介するセッションでした。

ライブラリとしてはvanilla-extractというライブラリが候補としては紹介されており(結局採用はしてなかった)、初耳だった。

メインはPandaCSSというライブラリの紹介だった。React Tokyo Fesで紹介しているポスターで CSS + 型 のライブラリとしては認識していたが、

セッションでデザイントークン(CSS変数など)の指定忘れで型エラーが出るという話があり、すごく便利に思えた。

私は開発の中でCSS変数で定義しているのに、離れたコンポーネントでは同じ色やfontSizeなどを忘れてそのまま書いちゃうことがあるあるで、CSSだからしょうがないって割り切ってた部分があり、その部分の課題にドンピシャで刺さる話だった。

ただし、私のメインが今Vue.jsなのでデザインシステムがすでに用意されている中であえてその枠組みを破ってもいいのかどうかについては、まだ検討の余地がありそうだと感じた。(Reactに関しては絶対使いたい)


protovalidate-es を導入してみた

登壇者: 辻 佳佑 さん

資料URL: https://speakerdeck.com/bengo4com/20260612-tskaigi2026-afterparty-introducing-protovalidate-es

SSoTの実現方法の一つとしてValidatorを.proto(gRPCで使われる定義ファイル)から生成するprotovalidate-esというライブラリの紹介でした。

実際のバリデーションを行うときの型とリクエストの時の型が違うことがあり、それはmappingの仕組みを導入することで解決できるという話があり、

私が今、hey-apiからzodのバリデーションを生成しているため、この話はすごく参考になった。

また、Vue.jsにはRegleというバリデーションライブラリがあることを知った。zod + vueの状態で頑張って実装してるのでもしかしたら、Regleを使った方が楽に実装できるのかもと思えた。


アンチパターンを避ける型駆動開発

登壇者: 芹澤 和也 さん

資料URL: https://speakerdeck.com/seriseri/antipatanwobi-keruxing-qu-dong-reactzui-shi-hua-tskaigi2026-ahutapatei

React Compilerの実現にあたって、どのような課題があったか、そしてそれをどのように解決したかを紹介するセッションでした。

副作用や非決定性などについて、設計から解決するという話があり、設計ってコードの課題解決としてあんまり意識したことなかったので、設計の役割について改めて考えさせられた。

まとめ

TSKaigiの時も思ったが、Biomeが登場してすぐだった去年の時点と比べて、Biomeが成熟 + oxlintが登場してきたこともあって、Linterを使った課題解決の話が多くなってきた印象があった。

AI導入というより、TSそのものの話が多く、TSについて大変勉強になった。