TypeScript
公式サイトTypeScriptとは
TypeScriptは、JavaScriptに「型」の情報を加えたプログラミング言語です。型とは、ある変数が文字なのか数値なのか、どんな項目を持つデータなのかを事前に宣言する仕組みで、書いたコードは最終的に通常のJavaScriptに変換されてブラウザやNode.jsで動きます。型があることで、項目名の打ち間違いやデータ形式の食い違いといった誤りを、実行する前の段階で検出できます。エディタの補完や参照の追跡も正確になるため、規模の大きなプロジェクトや複数人での開発で特に効果を発揮します。
弊社が採用する理由
弊社では、JavaScriptで書く部分は原則としてTypeScriptで記述しています。Next.jsやReactで作る画面、FastifyなどNode.jsで作るサーバー、AWS CDKによるインフラ構成の記述まで、同じ言語で通せることが大きな理由です。業務システムでは、APIがやり取りするデータの形をOpenAPIの仕様から型として自動生成し、画面側の入力チェックにはzodを使って型と検証ルールを一致させています。これにより、サーバー側の仕様変更が画面側のどこに影響するかを、コードを実行せずに把握できます。要件定義で決めた項目やルールが型として残るため、設計資料とコードのずれが起きにくく、担当者が変わったときの読み解きも楽になります。長く使う業務システムほど、型による安全性が保守コストの削減につながると考えています。
向いている案件
- 画面数や項目数が多く、長期間保守する業務システム
- 複数人で開発する、または将来引き継ぎが想定されるプロジェクト
- APIの仕様と画面の実装を厳密に一致させたいWebアプリケーション
- インフラ構成やビルド設定をコードで管理したい場合
保守・移行の観点
TypeScript本体の更新では、型チェックが厳しくなり、これまで通っていたコードが警告や誤りとして検出されることがあります。これは潜在的な問題が見つかったと捉え、更新時に一つずつ対処します。周辺ライブラリが提供する型定義の更新も影響するため、依存関係をまとめて更新する時期を決め、ステージング環境で型チェックとビルドが通ることを確認してから本番に反映します。型チェックとテストを継続的インテグレーションで自動実行しておくと、更新の影響を早い段階で把握できます。
組み合わせて使う技術
よくあるご質問
TypeScriptを使うと開発費用は高くなりますか?
型を書く分の手間は増えますが、誤りを早い段階で見つけられるため、テストや修正の工数はむしろ減る傾向にあります。長期間保守するシステムほど効果が出やすいと考えています。
既存のJavaScriptのシステムをTypeScriptに移行できますか?
可能です。TypeScriptはJavaScriptと共存できるため、影響の大きい部分から段階的に型を付けていく進め方が一般的です。まず現状のコードを拝見して方針をご提案します。
関連するサービス
関連する開発ガイド
- 要件定義とは何をすることか — 発注前に整理したい5つのこと要件定義はシステムで何を実現するかを合意する工程です。発注前に整理したい目的と成功条件、現状業務の流れ、利用者と権限、扱うデータ、やらないことの5つを、想定例を交えて解説します。
- 納品後の保守・運用で何が必要かシステムは納品後も動かし続ける必要があります。監視、バックアップと復元テスト、OS・ミドルウェア・CMSのアップデート、ステージングでの検証、保守契約の範囲という基本を整理します。
- 他社が作ったシステムの引き継ぎ・保守を依頼するときのチェックリスト前の開発会社が作ったシステムの保守を別の会社に引き継ぐときの手順を、資料・アカウント・ソースコード・環境の棚卸しから調査、リスク整理、保守範囲の合意、移行まで、確認項目の表とともに解説します。
関連用語: API、要件定義、ステージング環境、基本設計・詳細設計
監修: Unlogical Systems合同会社(杉並区・西荻窪)公開