TypeScriptシステム構成20選!どの構成を選べばいいの?

現場で最速でつかえるTypeScript入門

TypeScriptって、どうやってWebシステムをつくるの?

最近、なにかと話題のTypeScriptですが、実際どうやって現場で使われているのって気になりませんか?

そもそも大前提として「TypeScript」という言語そのものには、Rubyにおける『Ruby on Rails』やPHPにおける『Laravel』のような、業界の圧倒的な標準(デファクトスタンダード)となるWebフレームワークが存在しません。

つまり、TypeScriptはどこまでいってもJavaScriptであり、それ以上でもそれ以下でもないということ。「JavaScriptがあるところであれば、TypeScriptに置き換えられる」というだけです。

TypeScriptの人気は、現在第一線で活躍している主流のフレームワークが積極的にサポートしているところも大きいです。このあたりから、TypeScriptはどんなシステムに向いているのか?一緒に深堀っていきましょう!

まずは、TypeScriptのシステム構成にはどんなものがあるか、確認してみたいと思います。

この記事の対象読者

  • TypeScriptにこれから触れる、または触れ始めたばかりの初学者
  • 「TypeScriptを学べ」と言われたが、何から手を付ければいいか分からない人
  • 既存のシステム(PHP、Rubyなど)に、これからTypeScriptを取り入れようか検討している人
  • 業界のトレンドより、まず自分の状況に合った現実的な選択肢を知りたい人

TypeScriptを使ったシステム構成

分類定義サーバーサイドクライアント側
① 全部TSサーバーもクライアントもTypeScriptで統一Node.js / Deno / Bun(Express, Fastify, NestJS, Hono等)React/Vue/Svelte+TS(ブラウザ)
② フロントエンドだけTSサーバーは別言語、ブラウザに表示する画面(コンポーネント)だけTSで構築PHP(Laravel)、Java(Spring Boot)、C#(.NET)、Python(Django)React/Vue/Angular+TS(Inertia経由、または別リポジトリのSPA)
③ バックエンドだけTSサーバーはTSだが、クライアント側はTS化されない、またはWebブラウザ上のJS/TSという概念自体が関係ないNode.js / Deno / Bun(Express, Fastify, NestJS, Hono, AdonisJS(APIモード)等)①モバイルアプリ(Swift/Kotlin/Flutter)②他社システム・B2B API連携③マイクロサービス間通信(Go/Python/Java等から呼ばれる)④Web画面はあるが素のバニラJS/htmxのみで、TS化されていない
④ JSだけTS(安全なJS化)サーバーも画面の骨組みも別言語・別技術のまま。画面内の一部スクリプトだけTS化PHP(Laravel/CakePHP/WordPress)、Ruby(Rails)、Python(Django)素のTypeScript(Vite等でビルドし、既存のテンプレートに埋め込む)

こうして整理してみると、「TypeScriptでWebシステムを作る」という一言の中に、実はまったく違う4つの選択肢が混在していることが分かります。

「①全部TS」サーバーからフロントまで全部TypeScriptで統一する方法は、確かに今のトレンドの中心にありますが、これを選ぶべきかどうかは「本当にそこまでの統一が必要か」で決まります。逆に、すでにLaravelやRuby on Railsのような強力なバックエンドの資産がある場合は、無理にサーバー側までTypeScriptに置き換える必要はなく、「②フロントエンドだけTS」や「④JSだけTS」のように、既存の土台を活かしたまま部分的に型安全性を取り入れる、という選択肢が現実的です。

「③バックエンドだけTS」は、Web画面を主戦場にしている開発者からは見えにくい領域ですが、モバイルアプリ向けのAPIや、他社システムとの連携基盤、マイクロサービス間の通信など、「画面がそもそもブラウザではない」という場面では、むしろ主流の選択肢になります。

「④JSだけTS」は、サーバーやHTML部はそのままに、スクリプトだけをTypeScript化して、型チェックの恩恵だけをつまみ食いするパターンです。実験・検証の場としてTSを試したい場合も、ここからスタートすることも多いのではないでしょうか?

「TypeScript=SPA(シングル・ページ・アプリケーション)を作ること」というイメージを持っている方も多いかもしれませんが、実際には従来通りのリロード型のシステム(SSR:サーバー・サイド・レンダリング)のままでも、TypeScriptの型安全性だけを取り入れることは十分可能なのです。

大切なのは、「今どのフレームワークが流行っているか」で選ぶのではなく、「今のシステムに何が既にあり、これから何が本当に必要なのか」を起点に、この4つの中から必要な部分だけを選び取ることです。

そうなってくると、実際にみんなどうしているのか気になりますよね?日本と世界でどのような構成で使われているかまとめてみました。

みんなどうしてる?

TypeScriptを使ってWebシステムを構築する際、みんなどのような技術の組み合わせを選んでいるのか、Qiitaの記事数から人気度を調査してみました。

修正版

#サーバーフロントTSの配置場所挙動Qiitaシェア(TS全体)Qiitaシェア(表内)
1Next.jsReact両方SPA(フルスタック)11.2%(4460)35.4%(4460)
2NuxtVue両方SPA(フルスタック)3.6%(1426)11.3%(1426)
3RailsReactフロントSPA2.2%(874)6.9%(874)
4GoNext.jsフロントSPA(API分離型)1.3%(527)4.2%(527)
5LaravelReactフロントSPA1.3%(516)4.1%(516)
6WordPress独自テーマフロントリロード型1.0%(408)3.2%(408)
7RailsNext.jsフロントSPA1.0%(386)3.1%(386)
8DjangoReactフロントSPA0.9%(372)3.0%(372)
9Spring BootReactフロントSPA0.9%(347)2.8%(347)
10RailsVueフロントSPA0.8%(328)2.6%(328)
11LaravelVueフロントSPA0.8%(299)2.4%(299)
12Laravel(API専用)Next.js(別リポジトリ)フロントSPA(API分離型)0.6%(239)1.9%(239)
13RemixReact両方SPA(フルスタック)0.5%(217)1.7%(217)
14RailsAngularフロントSPA0.5%(206)1.6%(206)
15NestJSReact両方SPA0.5%(194)1.5%(194)
16DjangoNext.jsフロントSPA0.5%(193)1.5%(193)
17NestJSAngular両方SPA0.4%(154)1.2%(154)
18Spring BootAngularフロントSPA0.4%(142)1.1%(142)
19Spring BootNext.jsフロントSPA0.4%(141)1.1%(141)
20DjangoVueフロントSPA0.3%(127)1.0%(127)
21Spring BootVueフロントSPA0.3%(125)1.0%(125)
22ASP.NETReactフロントリロード型(部分SPA)0.3%(119)0.9%(119)
23DjangoAngularフロントSPA0.3%(116)0.9%(116)
24RustSvelteフロントSPA(API分離型)0.3%(114)0.9%(114)
25ASP.NETAngularフロントSPA0.2%(79)0.6%(79)
26LaravelBladeフロントリロード型0.2%(77)0.6%(77)
27NestJSVue両方SPA0.2%(67)0.5%(67)
28RailsERBフロントリロード型0.2%(60)0.5%(60)
29ASP.NETVueフロントリロード型(部分SPA)0.1%(46)0.4%(46)
30ExpressEJS両方リロード型0.1%(46)0.4%(46)
31Spring BootThymeleafフロントリロード型0.1%(44)0.3%(44)
32Expresshtmxサーバーリロード型(部分更新)0.1%(42)0.3%(42)
33ASP.NETRazorフロントリロード型(部分SPA)0.1%(28)0.2%(28)
34ExpressEta両方リロード型0.1%(21)0.2%(21)
35AdonisJSEdge両方リロード型0.0%(16)0.1%(16)
36DjangoDTLフロントリロード型0.0%(15)0.1%(15)
37WordPress(Gutenberg)Reactエディタフロント管理画面SPA的0.0%(13)0.1%(13)
38Fastifyhtmxサーバーリロード型(部分更新)0.0%(6)0.0%(6)

この結果をみると、Next.js+Reactと、Nuxtの2つだけで、表内の記事の約半分を占めていることが分かります。この2つは、サーバーとフロントを、1つのフレームワークで完結させる、フルスタック構成です。開発環境が1つで完結し、型もフロント・バックエンドで統一できるため、TypeScriptとの相性が良く、記事数にも、その傾向がはっきり表れています。

一方、Rails+React、Django+React、Rails+Vueのように、「サーバー側は、これまで通りの言語を使いながら、フロントだけReact/Vueに置き換える」という場面でもTypeScriptが一緒に導入されていることもうかがえます。これは、Spring Boot、ASP.NET、NestJSのような、型を厳密に扱う設計思想のフレームワークでも同様です。

順位サーバーフロントJS/TS層挙動日本
シェア
海外
シェア
1LaravelBlade素のTSリロード型16%5%
2LaravelInertia+React/VueTSSPA12%8%
3NestJS(TS)なしReact/Vue/Angular+TSSPA(API分離型のシステム)10%13%
4Spring BootThymeleaf/なしReact/Angular+TSSPA10%6%
5ASP.NET CoreRazor素のTS両対応8%4%
6Next.js/RemixReactReact+TSリロード型(モーダルなどパーツのみSPA)7%19%
7NuxtNuxt自身Vue+TSリロード型(モーダルなどパーツのみSPA)5%5%
8RailsERB素のTSリロード型3%1%
9LaravelBlade+React/Vue埋め込みTS(アイランド)リロード型(モーダルなどパーツのみSPA)3%1%
10WordPress独自テーマTSリロード型3%3%
11Express(TS)EJSバニラJS(TS部分的)リロード型2%1%
12AdonisJS(TS)Edge型付きスクリプトリロード型2%1%
13Go/RustNext.js/SvelteTSSPA(API分離型のシステム)2%7%
14Laravel(API専用)Next.js(別リポジトリ)React+TSSPA(API分離型のシステム)2%2%
15DjangoDTL素のTSリロード型2%1%
16任意APIAngular自体Angular(TS必須)SPA2%4%
17WordPress(Gutenberg)ReactエディタReact+TS管理画面SPA的1%1%
18AstroHTML+コンポーネントTS(アイランド)リロード型(モーダルなどパーツのみSPA)1%2%
19Next.js/Express(tRPC)型共有TS主にSPA1%3%
20Express/Fastify(TS)htmxなし(htmxはJSを使わない思想)リロード型(部分更新)1%1%
21Express(TS)Eta(EJSの後発)素のTSリロード型0%1%

上記のシェア率は、統計にもとづくものではなく、AI(Claude)の肌感によるものですので参考程度にしてください。この文章を引用したり二次使用することはお控えください。
<出典として参考にした主なデータ>
・テクフリ、TechReach、TECH STOCK等のフリーランス案件数(2025年時点)
・npm trends(EJS/Eta/Handlebars等のダウンロード数)
・State of JavaScript 2024/2025
・W3Techs(WordPressの市場シェア)

この表は最近の情勢をもとにAI(Claude)に作ってもらったものですが、これによると、日本の並びで目立つのは、上位がLaravel関連で占められている点です。日本はLaravel案件がPHPフレームワークの中で多く、既存のLaravel資産にTypeScriptを組み合わせる構成が広く見られます。

海外の並びで目立つのは、Next.jsが最上位に来ている点です。海外ではNext.jsのようなTypeScript中心の構成が強い傾向にありますが、Java・Go・PHPなど他言語も依然として広く使われています。

どれを選ぶ?ケース別システム構成

ここまで、TypeScriptの4つの使われ方と、Qiitaの検索件数をもとにした、実際の構成別の記事数を見てきました。ただ、これを見て「じゃあ自分は何から学べばいいのか」と迷う方も多いと思います。

TypeScript単体の文法から丁寧に学んでから、システム構成を考える、という順番だと、実は二度手間になりがちです。TypeScriptという言語自体の機能は、SPAでもSSRでも変わりません。ただ、SPAでよく使うReact/Vueなどのライブラリには、SPA特有の型の書き方(JSXの型付けなど)が多く登場します。先に「自分がどんなシステムを作りたいか」を決めてから学ぶ方が、圧倒的に早道です。

作りたいものの形は、大きく3つのケースに分けられます。

  • ① SPA(サーバーとフロントが同じFW)のシステムをつくりたい
  • SPA(サーバーとフロントが別のFW)のシステムをつくりたい
  • ③ 一般的なリロードタイプのシステムをつくりたい:

まずは自分がどのケースに近いか、当てはめてみてください。それぞれの主流の組み合わせを、難易度・転職市場での需要と一緒にまとめた表がこちらです。

ケース難易度学ぶべきこと・主流の組み合わせIT業界・転職市場での需要
① SPA(サーバーとフロントが同じフレームワーク)★★☆(中)Next.js(React)◎Qiita実測で1位
 ★★☆(中)Nuxt(Vue)◎Qiita実測で2位
 ★★★(高)Remix(React)◯Next.jsの対抗馬
② SPA(サーバーとフロントが別フレームワーク)★★★(高)Rails+React◎Qiita実測で3位
 ★★★(高)Go+Next.js(別リポジトリ)◯チーム開発向け
 ★★★(高)Laravel+React◯既存のPHP資産を活かせる
③ 通常のシステム(SSR)★☆☆(低)Laravel+Blade+素のTS◯日本国内で一定の求人がある
 ★★☆(中)Rails+ERB+素のTS△求人数は少なめ
 ★★☆(中)Express+EJS(サーバーもTSで統一、画面は従来型)△求人数は少なめだが、Node.js経験としてはカウントされやすい

まず①は、「サーバーもフロントも、1つの技術で、統一して作りたい」という人向けです。Next.js・Nuxt・Remixのいずれも、学ぶ内容の多くが、「1つのフレームワークの、作法を覚える」ことに集中でき、覚えることが、比較的、整理しやすいのが特徴です。海外では、Next.jsの人気が、圧倒的です。

②は、「画面をリッチに、サクサク動かしたい。ただし、サーバー側は、既にある資産を活かしたい、あるいは、担当を分けて開発したい」という人向けです。サーバー側の技術(Rails、Go、Laravel等)と、フロント側の技術(React等)を、別々に覚える必要があるため、①より、習得の手間は増えますが、その分、既存システムの改修や、チーム開発との相性がよい構成です。

③は、「画面が切り替わるたびにページ全体が読み込まれる、従来通りの作り」を、安全に型を取り入れて実装したい人向けです。特に社内システムや業務システムのように、堅牢性・保守のしやすさを優先する場面では、こちらが向いています。3パターンの中では、最も学ぶ範囲が狭く、着手しやすい構成です。

Node.jsってどうなの?Apache(Nginx)よりいいって本当?

システム構成を選ぶ際に、Webアプリケーションサーバーが、Apache/Nginx(PHP)かNode.jsの2択どちらがよいのかも気になるところ。

ここでは、Apache/Nginx(PHP)構成とNode.js構成で比較したので見ていこう。

静的/動的の基本比較表

処理内容Apache/Nginx(PHP)Node.js優位
静的ファイル配信実測ベースで高速やや劣るApache/Nginx
DB書き込みを伴う動的処理Persistent Connection・OPcache等でカバー可能やや高速Node.js(僅差)

実務でよくある処理シーンまで広げた表

シーンApache/Nginx(PHP-FPM)Node.js優位
重い画像アップロードアップロード中、ワーカーが専有される非同期I/Oで他リクエストも並行処理Node.js
100人が同時アクセスワーカー数を適切に設定すれば問題なしメモリ効率よく捌ける体感差なし(数千人規模から差が出る)
定期バッチ・cron処理Web用プロセスと完全分離できる同一プロセス内だと重い処理が全体を止めるリスクApache/Nginx
CPU/メモリ逼迫時の耐久性1リクエスト1プロセスで隔離、影響範囲が狭いシングルプロセスなので影響範囲が広がりやすいApache/Nginx
重いセッション処理ファイルロックで詰まる場合あり(Redis等で解消可)比較的詰まりにくいNode.js(僅差)

上記にしめしたとおり、

  • 静的ファイル配信では、Apache/NginxがNode.jsよりも明確に高速(実測ベースでおよそ2〜3倍)
  • DB書き込みを伴う動的処理では、逆にNode.jsがやや有利という調査結果が見られます

という差はあるものの、システム設計の性能による影響と比較すると微々たる差。どちらも大手サービスで採用されており、性能差はシステム設計(特にDBまわりの処理時間)にくらべれば微々たるものというのが実情です。

「Webアプリケーションサーバーはどっちがいいの?」に対する答としては、大差はない。強いていうなら、リッチなリアルタイム性・大量同時接続が求められるシステムをつくりたいのか(Node.js)、従来の堅牢な業務系システムをつくりたいのか(Apache/Nginx)で、判別してよいといえる。

さいごに

今回は、TypeScriptの使い所に焦点をあててまとめてきましたが、いかがだったでしょうか?次回は、これらの最速の検証環境の構築についてもご紹介していきたいと思います。それでは、また次の記事で。