Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shogogg
June 06, 2026
Technology
830
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
2026年6月6日に行われたフロントエンド・PHPカンファレンス北海道2026の登壇資料です
shogogg
June 06, 2026
More Decks by shogogg
See All by shogogg
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
990
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
300
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
380
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
1.4k
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
1.1k
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
840
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
6
2.4k
PHPer のための プロポーザル駆動アウトプット入門 #phpcon_niigata / PHP Conference Niigata 2025
shogogg
1
840
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
4k
Other Decks in Technology
See All in Technology
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
140
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
3.1k
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
460
2026_devsumi_ozono.pdf
o3
3
550
Genieを崇めよ
kameitomohiro
0
170
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
240
AI coding 整合正規方法
philipz
0
450
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
880
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
1.1k
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.5k
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
700
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
140
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
My Coaching Mixtape
mlcsv
0
320
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
290
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Leo the Paperboy
mayatellez
10
2.3k
Navigating Team Friction
lara
192
16k
Designing Experiences People Love
moore
143
24k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
280
Transcript
Shogo Kawase / @shogogg PHP と TypeScript の型システム比較 AI 時代の「型」は誰のためにあるのか?
Jun. 6 2026 Frontend PHP Conference Hokkaido 2026
About Me 河瀨 翔吾 / Shogo Kawase エンジニアリングマネージャー PHP
TypeScript I LOVE... 妻 / 型安全 / アジャイル / ももいろクローバーZ 麻雀 / F1 / マリオカート / ACE COMBAT shogogg shogogg 2000年(PHP 4.x) 2012年(TypeScript 0.8)〜
Today’s Goal • PHP と TypeScript の型システムの違いと注意すべきポイントを学ぶ • AI 時代の「型」の考え方を知る
おしながき 1 「型」の基本 2 PHP vs TypeScript「型」の違い 3 AI 時代の「型」
4 まとめ
おしながき 2 PHP vs TypeScript「型」の違い 3 AI 時代の「型」 4 まとめ
1 「型」の基本
静的型付け vs 動的型付け 静的型付け • すべての変数に型が割り当てられ、コンパイル時に決定 • 型エラーはコンパイル時に検出 • 異なる型の値は変数に代入できない
• 例: Java, Go, Rust, C/C++, ... 動的型付け • 変数の型が固定されず、実行時に決定 • 型エラーは実行時に検出 • 異なる型の値を同じ変数に代入できる • 例: Perl, Ruby, Python, JavaScript, ...
強い型付け vs 弱い型付け 強い型付け • あらゆる場面において、厳密に型がチェックされる • 3 - '2'
はエラーとなり、実行不可 • 例: Java, Go, Rust, Ruby, Python, ... 弱い型付け • 暗黙的な型変換 により、コンパイラやランタイムが「空気を読む」 • 3 - '2' の結果は 1 • 例: Perl, JavaScript, C/C++, ...
公称型 vs 構造的部分型 公称型 • 型の互換性は型の継承関係など、明示的な宣言に基づいて判断される • 例: Java, Rust,
C/C++, ... 構造的部分型 • 型の互換性は型の構造やプロパティに基づいて判断される • 例: Go, Python(Protocol), Ruby(RBS), ... ダックタイピング • 呼び出したメソッドや、参照したプロパティが存在すればOK • 例: JavaScript, Perl, Python, Ruby, C++(Template)...
型システムの歴史 黎明期 コンピューターが発明された当初は使えるリソース(メモリ等)が限られており、厳密な型 チェックを行う「静的型付け言語」 が主流。 LL言語の台頭(1990年代後半〜) Web の急速な普及に伴い、厳格さよりも「すぐに書けてすぐに動かせる」LL言語が台頭。 「動的型付け言語」 が普及・流行。
「型」の再評価(2010年代〜) コンピューターの普及により、あらゆるビジネスにソフトウェアが必要となる時代。 ソフトウェアの規模も拡大し、大規模開発に耐える厳格な型システムを持つ言語が人気に。
おしながき 1 「型」の基本 3 AI 時代の「型」 4 まとめ 2 PHP
vs TypeScript「型」の違い
比較項目 PHP TypeScript 型付け 弱い動的型付け 強い静的型付け 検査タイミング 実行時 トランスパイル時 互換性モデル
ダックタイピング + 公称型 構造的部分型 実行時の型情報 保持される 一部を除いて消失 PHP vs TypeScript「型」の違い
PHP の「型」 ✅ 限定的な「強い型付け」 • 厳格モードの有効化により、引数や戻り値、プロパティを強い型付けとすることが可能 ✅ Null許容型・交差型・ユニオン型のサポート • Null
許容型(PHP 7.0〜)や交差型(同8.0〜)、ユニオン型(同8.1〜)もサポート ✅ PHPStan 等による静的解析 • PHPStan 等の静的解析ツールを使えば、実行前に型エラーを検出できる ⚠ 表現力の限界 • 総称型(ジェネリクス)などが(まだ)サポートされていない
TypeScript の「型」 ✅ 圧倒的な表現力 • リテラル型や総称型(ジェネリクス)をサポート • Conditional Type や
Mapped Type により型を「計算」して生み出すことも可能 ✅ 強力な型推論 • 静的型付け言語の弱点であった「冗長なコード」を強力な型推論によって解決 ✅ 構造的部分型と Object • Object と構造的部分型の組み合わせが、軽量なデータ表現を実現 ⚠ 実行時の「割れ窓」 • トランスパイルによって JavaScript に変換されるため、実行時には型情報を持たない • any 型や as による型アサーションを使われると意図しないコードが実行されてしまう
PHP vs TypeScript「型」の違い:まとめ どちらも十分な型システムを持つ • かつてはゆるふわLL言語の代表格だった PHP も、この10年で堅牢な型システムを獲得 • TypeScript
は圧倒的な型の表現力で Web 開発を支えて続けている 型エラーのあるコードが「実行されにくい」PHP • 型エラーのあるコードが実行時エラーとなり、意図しないコードの実行を防ぐ • 静的解析ツールも普及し「動かさないとわからない」は過去の話に 型エラーのあるコードが「出荷されにくい」TypeScript • 型エラーのあるコードが静的に検出され、ビルドプロセスにおいてエラーとなる • 実行時には型情報が残らないため、意図しないコードが実行されてしまう場合も
おしながき 1 「型」の基本 2 PHP vs TypeScript「型」の違い 4 まとめ 3
AI 時代の「型」
AI 時代の「型」は 読み手 のためにある
AI 時代の「型」は 読み手 のためにある
型情報 = コンテキスト
AI時代のコードは 型を明示すべき
AI 時代の「型」は読み手のためにある 「人間」のため • AI がコードを生成する時代になり、人間がコードを書く量・時間は激減 • コードの生成速度向上に伴い、レビュー=読む量・時間が増えている 「AI」のため •
AI もコードを読む機会は多く、型の明記が無駄な推論を減らす • もちろん AI がコードを生成する上での「ハーネス」としても型の明記は重要 「コンパイラ」のため • 型が明記されたコードは型推論のオーバーヘッドを減らし、コンパイル時間を短縮 • PHP の JIT が生成するネイティブコードの実行効率も向上
これからの PHP 型システムの強化と関数型のエッセンス • PHP 7 以降、型システムはどんどん強化されており、今後もその傾向は続く見込み • パイプ演算子など、関数型のエッセンスも積極的に導入 「型推論がないこと」がメリットに
• かつては「型を書かないといけない」ことが書き手にとって手間であり、弱点だった • 今後はむしろ「型を書かざるを得ない」ことが読み手にとってのメリットに 総称型(ジェネリクス)の実現(?) • 実は10年以上前からずっと議論されている • 今年に入って新たな RFC が提案されており、いよいよ実現の可能性が高い
これからの TypeScript TypeScript の「型」は純粋なアノテーション(注釈)へ • TypeScript 7.0 で tsgo が標準化、--outFile
が廃止 • Node.js / Deno / Bun などが TypeScript の直接実行を標準サポート • 型は「ビルド時の制約」から、実行時には消える純粋なアノテーション(注釈)へ 「型推論」との付き合い方の変化 • かつては型推論を駆使し、書き手の負荷を減らすことが正義であった • 今後は積極的に型を明示し、読み手の負荷を減らすことを重視するべき
おしながき 1 「型」の基本 2 PHP vs TypeScript「型」の違い 3 AI 時代の「型」
4 まとめ
「型」の価値が高い時代 • 型にうるさい言語とゆるい言語があり、時代によって主役は入れ替わってきた • 大規模化・複雑化・ AI化により、今後しばらくは型に厳格な言語の人気は続くだろう PHPとTypeScript、どちらも十分な型システムを持つ • かつてはゆるふわLL言語の代表格だった PHP
も、この10年で堅牢な型システムを獲得 • TypeScript は圧倒的な型の表現力で Web 開発を支えて続けている AI 時代の「型」は読み手のためにある • 読み手とは人間・AI・コンパイラ • コード上で型を明示することの重要性が増している まとめ
\中途採用やってます!!/
Appendix • PHP RFC: Generic Types and Functions 従来のジェネリクスの議論 •
PHP RFC: Bound-Erased Generic Types 今年に入って提案されたジェネリクスに関する新しい RFC • Laravel Live Japan – Live from Tachikawa Stage Garden // Day 2 PHP Foundation の Roman Pronskiy 氏が今後の PHP について語っています • Announcing TypeScript 7.0 Beta TypeScript 7.0 のリリースに関する公式アナウンス • Claude Code に向いているプログラミング言語 Ruby コミッターによる言語ごとの「コードの生成効率」に関する記事