TypeScript classを扱う
間違っている場所あったら優しく教えてね
TypeScriptで初めてClassを扱うのでメモを残しておく.
TyepeScriptのclassはC#やJavaのClasstと似ています.
classの定義
class Person { name: string; constructor(name: string) { this.name = name; } }
Personクラスを定義しています. プロパティとしてname
を宣言しています. 宣言する際には型を指定しましょう. コンストラクターで先に定義したname
プロパティを初期化します.
最初にプロパティを宣言した段階か, constructor内でプロパティの値全てを初期化しないとエラーが出ます.
this.name = name;
のthis
はプロティへのアクセスを表しています.
class Person { name: string; age : number; // コンパイルエラー constructor(name: string) { this.name = name; } }
上の例ではage
プロパティが宣言時に初期化されていなく,constructor内でも値がセットされていないのでエラーが出ます.
メソッドの作成
class Person { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } SayHello() { console.log(`Hallo! I am ${this.name}.`); } }
プロパティにage
を追加しておきました.
メソッド名 () { // 処理内容 };
でメソッドの定義することができます. ここはjavascriptと損傷ないですね. このメソッド内でもプロパティの値を参照するときは, this
をつける必要があります.
classの利用(インスタンスの作成)
実際に作ったクラスを利用していきたいと思います,
class Person{ // 上と同じ } // ここで作成している. let Kirito = new Person ( "Kirito " , 18 ); // メソッドの呼び出し Kirito.SayHello();
- 実行結果
Hello ! I am Kirito .
new Person( "Kirito" , 18 )
の部分で新しくインスタンスが作成されています. 名前はKiritoで年齢が18です. このインスタンスをKiritoという変数に代入しています.
- メソッドの呼び出し
インスタンス名.メソッド名(引数 ); Kirito.SayHello();
このようにメソッドを呼び出すことができます. Class内で定義した メソッドを呼び出すことができます.