TypeScript - Class

TypeScript 的類別透過 class 關鍵字宣告,透過 new 關鍵字建立物件實體。

1
2
3
4
5
6
class MyClass { 
...
}

var obj = new MyClass();
...


建構子的透過 constructor 關鍵字宣告。

1
2
3
4
5
...
constructor(...) {
...
}
...


類別屬性的宣告,是透過 get/set 關鍵字定義 get/set 區塊。

1
2
3
4
5
6
...
private _name: string;
...
get name():string{ return this._name; }
set name(value:string){ this._name = value; }
...


類別方法的宣告不需要加上 function 關鍵字,還可依需求套上不同的存取修飾符,不過目前支援 private/public,若不加上存取修飾服,預設宣告的是 public 的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
...
MyFunction():void {
...
}

private PrivateFunction():void {
...
}

public PublicFunction():void {
...
}
...


類別的繼承則是透過 extends 關鍵字。

1
2
3
class ChildClass extends MyClass { 
...
}


最後附上完整的使用範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Person { 
private _name: string;
private _age: number;

get name():string{ return this._name; }
set name(value:string){ this._name = value; }
get age():number{ return this._age; }
set age(value:number){ this._age = value; }

constructor(name: string, age:number) {
this.name = name;
this.age = age;
}
SayHello():string {
return "Hello~I'm " + this.name;
}
}
class Larry extends Person {
constructor() {
super("Larry Nung", 35);
}
}
var p = new Larry();
alert(p.SayHello());