TypeScriptでクラスやメソッドを定義する。
TypeScriptでクラスを作る構文は以下のとおりです。
class Person { firstName: string; lastName: string; age: number; ssn: string; constructor(firstName: string, lastName: string, age: number, ssn: string) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.ssn = ssn; } } var p = new Person("John", "Smith", 29, "124-45-67"); console.log(p)
TypeScriptはpublic
, protected
,private
を設定することができます。
オブジェクトのメンバーのアクセスコントロールのためです。
デフォルトでは全てのクラスメンバーはpublicアクセスとなります。
protectedが設定された場合は、同じクラスかサブクラスからしか見えません。 privateは同じクラスのみから見えます。
TypeScriptでメソッドを定義する
クラスの中で宣言された関数のことをメソッドと言います。 JavaScriptでは、メソッドはプロトライプの中で宣言する必要があります。
class MyClass { doSomething(howManyTimes: number) { console.log(howManyTimes); } static doAnything(howManyTimes: number) { console.log("anytime " + howManyTimes); } } var mc = new MyClass(); mc.doSomething(5); MyClass.doAnything(100);
staticで宣言されたメソッドは、全てのインスタンスとクラスの間で共有されます。 そして、インスタンスを生成しなくても、メンバーにアクセスすることができます。
クラス内でメソッドを呼ぶ場合は、this.doAnyThing(100);
というように、this
をつける必要があります。
ゲッターとセッターを追加する
class Person { constructor(public _name?: string) { } get name(): string { return this._name; } set name(value: string) { this._name = value; } } var p = new Person("Takashi"); var p2 = new Person(); p2.name = "Takeshi"; console.log(p.name); console.log(p2.name);