[TypeScript]型の基本


を読みつつTypescriptに触れてみた。

クラス構文

class Person {
    constructor(public name:string, public birthday:Date) {
    }
}

コンストラクタの引数に修飾子publicをつけておくと、それがそのままメンバ変数になる。
javaとかでよくある、コンストラクタの引数を受けてthis.hoge=hogeというボイラープレートコードを省略できる。

型の定義

class A {
    public memberA() {
        console.log("I'm in A");
    }
}

class B {
    public memberA() {
        console.log("I'm in B");
    }

    public memberB;

}

var a:A;
a = new B();
a.memberA(); //I'm in B

AとBは型が一致していないし継承関係にもないが、BはA型に求められる「publicなmemberAメソッドを持つ」性質を満たしているので、A型の変数にBインスタンスを代入することができる。
javaでいうところのインタフェース的な型の概念という認識。

使ってみて気づいたことですが、typescript使うと、型の恩恵を受けてIDEのコード補完が高速かつ正確になります。一番のメリットです。