TypeScript
JavaScript とデータ型
次のような関数を考えてみましょう。
function formatDate(date) {
return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
}
この関数の date
引数には、どのような値を指定すれば良いでしょうか。答えは、Date
オブジェクトを指定することです。formatDate(new Date("2022-01-01"))
は動作しますが、formatDate("2022-01-01")
はエラーになってしまいます。しかも、エラーが発生するかどうかは実際に実行してみるまでわかりません。
上のような単純なプログラムならこういった問題は起きにくいですが、プログラムの規模が大きくなるにつれ、「どういった値がやりとりされているのか」という情報を把握することが重要になってきます。こういった情報を、データ型、あるいは単に型と呼びます。
TypeScript を用いると、プログラム中にデータ型を記述できるようになります。TypeScript は、Microsoft 社によって開発された、JavaScript にトランスパイルして用いられる言語です。
TypeScript における型は、通常 :
の記号に続けて記述します。例えば、先程のプログラムを TypeScript を用いて書き直すと、次のようになります。引数の部分に型指定が入っているところに注目してください。
function formatDate(date: Date) {
return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
}
これにより、次のような開発者体験が得られます。
date.
と入力されたタイミングで、使用可能なメソッドが全て表示されます- 誤った型の引数 (動画内では文字列) を指定すると、エラーが表示されるようになります
C++ や Java などの一般的なプログラミング言語では、型の情報は実行に何らかの影響を与えますが、TypeScript は JavaScript にトランスパイルされる言語であり、実行時には型の情報は一切利用されません。
TypeScript を使って Node.js のプログラムを記述する
TypeScript を用いて Node.js のプログラムを作成するには、次の手順に従ってください。
まずは、プロジェクトルートに package.json
を作成します。npm init
を実行すればよいのでした。
続いて、
npm install -D typescript
を実行し、typescript パッケージをインストールします。-D
オプションは「開発時のみに使用する」という意思表示になります。package.json
に記録される方法が少しだけ変わります。
続いて、main.ts
ファイルを作成します。TypeScript ファイルの拡張子は通常 .ts
です。今回は、
const language: string = "TypeScript";
console.log(`Hello ${language}!`);
としました。
TypeScript ファイルの作成が終わったら、npx
コマンドで TypeScript パッケージを実行し、TypeScript ファイルを JavaScript ファイルにトランスパイルします。パッケージ名と異なり、tsc
となるので注意しましょう。
npx tsc main.ts
すると、同名の JavaScript ファイルが生成されます。このファイルを実行すれば、通常の JavaScript として実行できます。
TypeScript の基礎
TypeScript を試すには、Microsoft が提供している TS Playground を用いると便利です。必要に応じて利用してください。