TSKaigi 2024 に参加してきました!
はじめに
Dev Enableチームの羽馬( NaokiHaba) と 庄司(ktanonymous )です。
2024年5月11日(水)に開催されたTSKaigi 2024に参加してきましたので、イベントの様子や印象に残ったセッションをいくつかご紹介します。
各セッションのアーカイブも公開予定とのことですので、ぜひ公式サイト・YouTubeチャンネルなどをチェックしてみてください。
イベントの様子
TSKaigi 2024は、今年から開催された新しいイベントです。TypeScriptを中心にしたカンファレンスで、TypeScriptの最新情報や活用事例などが紹介されました。
会場には、国内外から多くのエンジニアが集まり、盛況のうちに開催されました。会場内では、様々なブースが設けられ、最新のツールやサービスの紹介が行われていました。
特に印象に残ったブースは、アセンド株式会社 様のブースで開催された 「TypeScriptコンパイルチャレンジ」です。
このコンパイルチャレンジは、以下のような内容でした。
- 参加者は、青色の「型カード」を引く
- 机に並べられた赤色の「値カード」から一つをめくる
- 引いた型カードと値カードを使って、TypeScriptのコンパイルにチャレンジ
- コンパイルに成功すると、景品が贈呈される(高難易度コンパイルに成功した方には、HHKBなどの豪華景品も)
弊社メンバーも、あと一歩のところで当選を逃してしまいましたが、楽しい体験ができました。
参加レポート
Keynote: What's New in TypeScript
発表者: Daniel Rosenwasser さん(https://twitter.com/drosenwasser) レポート: 庄司
Microsoft / TypeScript Principal Product Manager の Daniel Rosenwasser さんによる Keynote では、TypeScript の最新情報が紹介されました。
TypeScript 5.4 および TypeScript 5.5 Beta の新機能について、 ライブコーディングを交えながら、各機能の使い方や利点が丁寧に解説されていました。
主な新機能は以下の通りです:
- TypeScript 5.4
- The NoInfer Utility Type
- Preserved Narrowing in Closures Following Last Assignments
- TypeScript 5.5 Beta
- Type Imports in JSDoc
- Regular Expression Syntax Checking
- Inferred Type Predicates
- Isolated Declarations
特に NoInfer は型推論を制御する上で強力な機能だと感じました。 型の絞り込み (Narrowing) の改善や JSDoc での型インポートのサポートなど、日々の開発で嬉しい機能が多数含まれていました。 Regular Expression の構文チェックは地味ながら実用的な機能追加だと思います。 TypeScript は着実に進化を続けており、次のバージョンが今から楽しみです。
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
発表者: やなえもん さん(https://twitter.com/yanaemon169) レポート: 庄司
こちらのセッションでは、数百のAPIを抱える Express コードを、AST(抽象構文木, Abstract Syntax Tree) を利用して Nest.js コードに大規模移行するという取り組みが紹介されました。
コードのリプレイスと言えば、正規表現を利用したスクリプトによる変換やIDEによる一括置換などが一般的ですが、こちらは AST を利用しているという点が新鮮でした。
AST を利用することで、微妙な表記揺れなどを気にせず、コードの構造に則したリプレイスが可能になるという話には説得力がありました。
TypeScriptのコンパイラでもASTが利用されているように、ASTとTypeScriptの相性の良さを感じました。また、近年の生成AI技術の発展によって、ASTの取り扱いもより容易になるのではないかと期待が持てます。
一方で、レビュアーの負担が大きいという課題にも触れられていましたが、全体としてとてもチャレンジングで興味深い取り組みだと感じました。
AST については、HireRoo さん(https://twitter.com/hirerooinc) が発表された TypeScript ASTを利用したコードジェネレーターの実装入門 でも詳しく解説されていましたので、興味のある方はそちらもチェックしてみてください。
TypeScriptから始めるVR生活
発表者: TamaG さん(https://twitter.com/TAMAGOKAKE_G_) レポート:羽馬
Resonite上でビジュアルプログラミング言語「ProtoFlux」を使った開発の様子が紹介されました。
ProtoFluxは「ノード」と「ノード」をつなぐことでプログラミングができる言語ですが、バージョン管理や関数化ができないという問題点がありました。
これらの問題を解決すべく生まれたのが「MirageX」です。MirageXは、TypeScriptとReactを使ってResoniteの開発ができるフレームワークです。
コードベースの開発になるため、バージョン管理やAIの力を借りることができるようになりました。また、ライブラリを使うこともできるため、本格的なシューティングゲームなども作成可能です。
VRプラットフォームでのTypeScriptを使った開発事例が紹介され、その可能性と課題について理解を深めることができました。VRという新しい領域でのTypeScriptの活用法について学べる貴重な機会でした。
興味を持った方は、ぜひ MirageXのGitHubリポジトリをチェックしてみてください!
サービス開発におけるVue3とTypeScriptの親和性について
発表者: からころ / karacoro さん(https://twitter.com/karan_corons) レポート:羽馬
Vue3ではComposition APIの登場により、コンポーネントのロジックを外部ファイルに切り出しやすくなり、型付けも改善されました。
また、コンポーネントランタイムの型付け強化により、Props、Emit、Provide/Injectなどでも型の恩恵を受けられるようになっています。
さらに、Volar.jsとvuejs/language-toolsの貢献により、テンプレートへの型の反映などエディタ連携の問題も解決されました。
講演の丁寧な解説と豊富なコード例は、Vue3とTypeScriptを活用したサービス開発のベストプラクティスを学ぶ上で非常に参考になる内容だと感じました。
まとめ
TSKaigi 2024は、TypeScriptを中心にしたカンファレンスとして、多くのエンジニアにとって有益な情報が得られるイベントでした。
TypeScriptの最新情報や活用事例を学ぶことができ、新しい技術やアイデアに触れることができました。
今後も、TypeScriptコミュニティの発展と、エンジニアのスキルアップに貢献するイベントとして、TSKaigiが続けられていくことを期待しています。
また、今回の参加レポートが、TypeScriptを学びたい方や、TypeScriptを活用したい方の参考になれば幸いです。
最後に
エブリーでは、ともに働く仲間を募集しています。
テックブログを読んで少しでもエブリーに興味を持っていただけた方は、ぜひ一度カジュアル面談にお越しください!
最後までお読みいただき、ありがとうございました!