Dance with Agents

そもそもTypeScriptとは何か

JavaScriptとは何かで見た言語には、発展形があります。TypeScriptです。別の言語というより、JavaScriptに「型」という安全装置を足したもの、という理解が実態に近くなります。

JavaScriptを拡張しただけ、という関係

TypeScriptは、Microsoftが開発し、2012年に公開した言語です。開発を主導したAnders Hejlsberg氏は、C#やDelphiといった言語も手がけてきた人物です。

TypeScriptで書かれたコードは、そのままではブラウザで動きません。 一度、素のJavaScriptに変換(コンパイル)してから配ります。逆に言うと、JavaScriptのコードはそのままTypeScriptとしても通用します(JavaScriptはTypeScriptの部分集合、という関係)。まったく新しい言語を覚えるというより、いつものJavaScriptに「型」という追加のルールを足していく、というイメージのほうが近い言語です。

「型」とは何をしてくれるものか

型とは、簡単に言えば「この変数には、こういう種類の値しか置けない」という宣言です。

function greet(name: string): string {
  return `こんにちは、${name}さん`;
}

name: stringは「nameという引数には、文字列しか渡せない」という宣言です。ここに誤って数値を渡すコードを書くと、実際にブラウザで動かす前の段階で、エディタや変換(コンパイル)の時点でエラーとして教えてくれます。

素のJavaScriptでは、こうした食い違いは実行してみるまで気づけません。 本番で誰かがボタンを押した瞬間にエラーが起きる、といった事故につながります。TypeScriptは、その手の間違いの相当な部分を、実行前に前倒しで見つけてくれます。

型を書く手間と、見返り

型を書くぶん、コード量は増えます。素のJavaScriptと比べると、最初の学習コストも書く手間も上乗せされるのは事実です。それでも、いまの主要なフレームワーク——React・Vue・Next.js・Astro——のスターター構成は、いずれも標準でTypeScriptを前提にしています。手間を上回る見返りがある、という判断が広く共有されている状態です。

エージェント時代に価値が増す理由

このサイトの文脈でもう1つ付け加えておきたいのが、コードを書くのが人間ではなくエージェントになった時代での型の意味です。

型が付いていると、エージェントが書いたコードの食い違いを、実際に動かす前の段階で機械的に検出できます。「ここに文字列を渡すはずが数値になっている」といった間違いは、実行して壊れて初めて気づくのではなく、型エラーという形で先に表面化します。 レビューする側にとっても、「型エラーが起きていないか確認して」という一言で点検をエージェントに頼めるのは、Webセキュリティの各論記事で触れた「具体的な名前を挙げて頼む」のと同じ構図です。中身をすべて自分で読まなくても、機械的にチェックできる項目が増える、というのが実務上の価値になります。

まとめ

  • TypeScriptは、JavaScriptに型という安全装置を足した拡張言語。JavaScriptのコードはそのままTypeScriptとしても通用する
  • 型を書くと、実行する前の段階で間違いに気づける
  • 手間は増えるが、主要なフレームワークはどれも標準でTypeScriptを前提にしている
  • エージェントに書かせたコードでも、型エラーという形で機械的に間違いを検出できる——「型エラーを確認して」と頼める語彙が1つ増える

プログラミング・環境構築の記事

プログラミング・環境構築のページへ →