web:https://www.typescriptlang.org/
typescriptはtsとjsを共存して書ける
main.ts
class User { } console.log("hello world");
main.js
var User = /** @class */ (function () { function User() { } return User; }()); console.log("hello world");
変数の後にコロンを入れて型を宣言する
var x: number = 10; x = "hello"; // number, string, boolean, any var i: number; var i = 10; // i:number 型推論 var x; // var x:any var results: number[]; // 配列の宣言 results = [10, 5, 3];
列挙型
// 列挙型 enum Signal { Red = 0, Blue = 1, Yello = 2 } var result: Signal; console.log(Signal[2]); // 列挙型 enum Signal { Red, Blue = 3, Yello } var result: Signal; console.log(Signal[3]); enum Signal { Green = 6 }
拡張もできる
関数
型制限を間違えるとコンパイル時にエラーになる
function add(a:number, b:number) : number{ return a + b; } console.log(add(5, 3)); function add(a:number, b:number) : number{ if(b){ return a + b; } else { return a + a; } }
関数式
var add = function(a: number, b: number){ return a + b; } var add = (a: number, b: number): number =>{ return a + b; }
オーバーロード
function add(a: number, b: number): number; // シグネチャ function add(a: string, b: string): string; function add(a: any, b: any): any { if(typeof a === "string" && typeof b === "string"){ return a + " " + b; } return a + b; }
class
class User { public name: string; constructor(name: strin){ this.name = name; } sayHi(): void { console.log("hi i am" + this.name); } } var tom = new User("Tom");