##Typescript
既存のJavaScriptではできなかった型定義やクラス生成などを可能にしたスーパーセット(上方互換)言語
##JavaScripとTypeScript、何が違う?
※基本、TypeScriptはJavaScriptの拡張言語のため、JavaScriptでできる機能は全部使える。
・型定義が可能
JavaScript
var name = 'kim';
TypeScript
var name: string = 'kim';
・インターフェース、クラスがつかえる
TypeScript
class Person{
name: string;
age: number;
}
・外部ライブラリで定義されている型を使用可能
・ジェネリックが使える
TypeScript
function getType<T>(arg: T): T {
return arg;
}
getType<number>(1); // 1
getType<string>('文字列'); // 文字列
##型定義が可能になって利点は?
予見できなかったエラーに対応しやすいし、コンパイルする前に型関連エラーを解消することができる
JavaScript
var num1 = 1;
var num2 = '2';
console.log(num1 + num2) // 3
TypeScript
var num1: number = 1;
var num2: string = '2';
console.log(num1 + num2) // エラー発生