プログラミング入門 TypeScriptって何?なんで使うの?を簡単に説明してみる
今回はTypeScriptについて書きます。
何か
JavaScriptに型システムを追加します。
JavaScriptには型システムがありません。
例えば以下のコードがあるとします。
const hoge = (str) => {
return str.split(',')
}
引数のstrはStringであることを想定されていますが、Numberを渡すことも可能です。
しかし、Numberを渡した場合、実行時にエラーになってしまいます。Numberにはsplit()というメソッドがないためです。
const hoge = str => {
return str.split(',')
}
console.log(hoge(123)) //Uncaught TypeError: str.split is not a function
このhoge関数の引数strは、必ずStringを渡して欲しいのですが、それをどのように他のプログラマーに伝えればいいでしょうか。
一つはコメントに「strはString」と残すことです。しかし、コメントを読まれない可能性もあり不確かです。
しかし、TypeScriptを使うことでこれを解消できます。
なんでつかうのか
先ほどのコードをTypeScriptで書いてみます。
const hoge = (str: string) => {
return str.split(',')
}
引数のstrの後に「:string」が付与された以外は同じです。
ご想像の通り、これは「strはStringです」ということを表しています。
このように書いた場合に、もしhoge関数にNumberを渡した場合、コンパイル時にエラーになります。
ここでのコンパイルとは、TypeScriptで書かれたコードを素のJavaScriptのコードに変換することです。
この変換処理は実行の前に必ず行うので、実行時エラーは発生しません。
また、他のプログラマーが見ても、「strはStringなんだな!」と明確に分かります。
このように、コードの量は増えますが、その分どういった型を想定しているのかが明確になったり、事前にエラーになるところをみつけられたりといったメリットがあります。
ディスカッション
コメント一覧
まだ、コメントがありません