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");