プログラマーの調べ物

プログラマーが調べ物をするときに役に立つサイトを作ります。

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