海未「今回はデータ型についてです。といっても、データの型はこれまでにも出てきましたね?」
ことり「JavaScriptだと、NumberとかStringとかがあったね」
海未「しかし変数はvar
やlet
で宣言するだけで、どんな型のデータでも入れることができました。しかしTypeScriptは違います」
1 2 3 4 5 6 |
var name: string; var age: number; var isStudent: boolean; var honoka: SchoolIdol; var misc: any; |
海未「このように、変数を宣言する時点で型を指定します。データだけではなく変数自身も型を持っているということです」
穂乃果「ってことは、このnameには文字列しか入れられないの?」
海未「はい。name = 25252
みたいなコードを書くとコンパイルエラーになりますね」
ことり「書き方はわかったけど、でも、どうして?」
海未「プログラムの規模が大きくなるほど、型のない変数は中身が何だか分からなくなりがちです。また、型チェックが静的であればコンパイル時に多くのエラーを検出できますから、テストやデバッグも楽になりますね」
ことり「大勢で開発するには型があった方が安全、ってことなんだね」
海未「string
、number
、boolean
といった基本データ型の他に、ユーザ定義のオブジェクトであればクラス名を指定します」
ことり「SchoolIdol
とかだね」
海未「とはいえ、何でも入れられる変数が欲しくなる時もあります。そんな時は、先ほどのコードにも挙げましたがany
を指定します」
穂乃果「あ、それ便利・・・」
海未「any
に頼り始めたら負けだと思ってください。TypeScriptは静的型付けを特徴とする言語なのですよ」
海未「これまでJavaScriptやElixirやPythonを学んできた私たちには型の概念は馴染みのないものかもしれませんが、C#やJavaなどの言語では欠かせないものです」
ことり「便利さというよりは安全性に倒してるんだね」
海未「次回は関数について、JavaScriptとの違いを見ていきましょう」