Slide 1

Slide 1 text

@cidermitaina SmartHR プロダクトエンジニア はじめて tsgo について興味を 持ったときに私の語ること 2025.06.06 Fri. TSKaigi 2025事後勉強会 —— まだまだ型りたい @SmartHR Space

Slide 2

Slide 2 text

@cidermitaina ● プロダクトエンジニア @SmartHR ● 配置シミュレーション機能を担当しています。 ● 音楽と犬が好きです。 About Me

Slide 3

Slide 3 text

みなさん TSKaigi 2025 どうでしたか?

Slide 4

Slide 4 text

学びや知見、気付きありましたか? まだまだ語りたいことありませんか?

Slide 5

Slide 5 text

え! なにそれ、めちゃくちゃおもしろい …!!

Slide 6

Slide 6 text

tsgo の話にとても興味 を持ちました!

Slide 7

Slide 7 text

「TypeScriptとは何であって何でなく、誰のもので、どこへ向 かうのか」 Sosuke Suzuki san TSKaigi で印象に残った発表の話

Slide 8

Slide 8 text

● TypeScriptのエコシステムの変遷、そして今後の展望に ついての話 ● その中で TypeScript での Go 実装の話があった TSKaigi で印象に残った発表の話

Slide 9

Slide 9 text

TypeScript の Go 実装??? 😯 TSKaigi で印象に残った発表の話

Slide 10

Slide 10 text

TypeScript の Go 実装 is ● TypeScript はこれまで JavaScript で実装されてきた ● 大規模なコードベースではパフォーマンスやスケーラビリティに課題があった ● TypeScript のコンパイラを始め各種ツール群を Go 言語に移植 ● この移植により、型チェックやビルド時間の大幅な短縮が期待されている TSKaigi で印象に残った発表の話

Slide 11

Slide 11 text

なんで移植?? なんで Go ?? ほんとに10倍?? TSKaigi で印象に残った発表の話

Slide 12

Slide 12 text

次の日の発表に「 TypeScriptネイティブ移植観察レ ポート」がある …! TSKaigi で印象に残った発表の話

Slide 13

Slide 13 text

わくわく! ☺ TSKaigi で印象に残った発表の話

Slide 14

Slide 14 text

「TypeScriptネイティブ移植観察レポート」 berlysia san TSKaigi で印象に残った発表の話

Slide 15

Slide 15 text

● TypeScript の Go 移植に関しての観察 ● 最近の動向を分かりやすく説明してくれてた TSKaigi で印象に残った発表の話

Slide 16

Slide 16 text

なんで移植なんだろ?? TSKaigi で印象に残った発表の話

Slide 17

Slide 17 text

● 既存の挙動の維持が重要 ● 型チェッカーにとって後方互換性は絶対 ● プラグアンドプレイでの置き換えを目指す TSKaigi で印象に残った発表の話

Slide 18

Slide 18 text

なんで Go ? TSKaigi で印象に残った発表の話

Slide 19

Slide 19 text

● 関数 + データ構造での手続き的な実装スタイルとの親和性が高い ● GC(ガベージコレクション)を持ち循環参照を自然に扱える ● 共有メモリを用いた並列処理が自然にできる ● クロスプラットフォームにネイティブコードで動作する すべてをバランスよく満たすのが Go TSKaigi で印象に残った発表の話

Slide 20

Slide 20 text

tsgo の話おもしろかった! 実際に触ってみたいなー ほんとに10倍なのかな 🤔

Slide 21

Slide 21 text

実際にプレビューを 試してみる

Slide 22

Slide 22 text

● TypeScript のコードを書く ● プレビューを試してみる 実際にプレビューを触ってみる

Slide 23

Slide 23 text

1. 「オブジェクトを再帰的に 読み取り専用にする型」 を作成 実際にプレビューを触ってみる

Slide 24

Slide 24 text

2. プレビューの install npm install -D @typescript/native-previe 参考: Announcing TypeScript Native Previews - TypeScript 実際にプレビューを触ってみる

Slide 25

Slide 25 text

3. tsc でコンパイル npx tsc -p . --extendedDiagnostics 実際にプレビューを触ってみる

Slide 26

Slide 26 text

4. tsgo でコンパイル npx tsgo -p . --extendedDiagnostics 実際にプレビューを触ってみる

Slide 27

Slide 27 text

tsc → 0.38s 実際にプレビューを触ってみる

Slide 28

Slide 28 text

tsgo → 0.042s 実際にプレビューを触ってみる

Slide 29

Slide 29 text

ほんとに10倍だ…!󰗲 実際にプレビューを触ってみる

Slide 30

Slide 30 text

なぜこんなにも tsgo が 気になったのか

Slide 31

Slide 31 text

課題、解決手法、選定理由にしっかりとした 理由付けが行われてる。

Slide 32

Slide 32 text

高速性、互換性、実運用をちゃんと両立して いる。

Slide 33

Slide 33 text

エンジニアとして取り組み方や姿勢に感動。

Slide 34

Slide 34 text

実務にすぐ活かせる内容ではないけれど、

Slide 35

Slide 35 text

TypeScript の内部的な実装について知ることができた し、

Slide 36

Slide 36 text

Microsoft の tsgo への取り組み方はエンジニアとして 学べることがたくさんある。

Slide 37

Slide 37 text

おわり👋