項目1 TypeScriptとJavaScriptの関係
TypeScriptはJavaScriptのスーパーセット
Bに含まれるすべてのものがAに含まれるとき、AはBのスーパーセットとなる
この観点に当てはめるとTypeScriptはJavaScriptのスーパーセット
JavaScriptのプログラムに構文エラーがない限り、それはTypeScriptのプログラムになる
TypeScriptの型チェッカーによるエラーは別問題で、型エラーが発生していてもJavaScriptにコンパイルは可能
ただ、JavaScriptプログラムでない、TypeScriptプログラムが存在する
主に型構文が存在している場合
つまり、すべてのTypeScriptがJavaScriptではない
code:js
// このコードをnodeで実行するとエラーになる
function greet(who: string) {
console.log('Hello', who):
}
.jsファイルの拡張子を.tsに変更すればTypeScriptファイルとして扱えるが、これは最も簡易的な移行
型を厳密に導入しないと完全に移行したとは言えない
ただ、TypeScriptファイルに変更するだけで受けれる型の恩恵もある
code:ts
let city = 'new york city';
// TypeScriptの型チェッカーによる問題検知が使える
// string型にtoUppercaseというメソッドは存在しないことを検知できる
console.log(city.toUppercase());
TypeScriptの型システムの目標は、コードを実行することなく、事前に問題を検出すること
また、型システムを利用することで問題の原因特定が容易になる
#TypeScript