class 類是typescript的核心宦搬,使用TS開發(fā)大多數(shù)代碼都是寫在類里面的
# 1:類的聲明
No 1:關(guān)鍵字 ?類名 { 類的屬性刨肃; 類的方法;}
class News{
? ? title;
? ? read(){
? ? ? ? ? console.log("read me");
? ? }
}
No 2:類的實例化:
var xxxj = new News();
xxxj.title = "my title";
xxxj.read();
No 3:在聲明類的屬性和方法的時候設(shè)置訪問控制符苗桂,控制其屬性方法是否可在類的外部訪問到
public : 可以在任意地方使用玫镐,也是不聲明時的默認操作符;
private : 只可在class內(nèi)部被調(diào)用箩溃;
protected : 在class內(nèi)部和該類的后代繼承元素上可以使用
# 2 :類的構(gòu)造函數(shù)
構(gòu)造函數(shù)constructor是類里面一個特殊的方法瞭吃,此函數(shù)只可在函數(shù)內(nèi)部應(yīng)用只,在實例化的時候被調(diào)用一次涣旨。
構(gòu)造器函數(shù)的一個重要用途就是規(guī)定一個類里的某些屬性必須在實例化時被傳入值
class News {
? ?constructor(public title:string) { ? } ?// 必須聲明控制符歪架,要不然是未聲明的
? ? read(){
? ? ? ? console.log("read me :" + title);
? ?}
}
等價于:
class News{
? title;
? constructor( title:string) {
? ? this.title = title;
? }
? read(){
? ? ?console.log("read me" + title);
? }
};
var n1 = new News(); ? ? // 報錯
var n2 = new News('xxxj'); ? ?//打印 read me : xxxj
# 3 :類的繼承
No 1:extends關(guān)鍵字是用來聲明一種繼承關(guān)系的
class News {
constructor(public title:string) { ? }
read(){
console.log("read me :" + title);
}
}
class NewsChild extends News {
time:string;
fun(){ }
}
var n3 = new NewsChild();
n3.title = "jxxx";
n3.fun();
No 2:super關(guān)鍵字是用來調(diào)父類的構(gòu)造函數(shù)和父類的其他方法
class NewsChild extends News{
constructor(title:string,public no:number) {
super(title);
//在這里用super繼承了父類構(gòu)造函數(shù)的title屬性,將title和no作為子類的兩個實例化時必須賦值的屬性
fun(){
? ? super.read();
? ? this.work();
?}
? private work(){ ?... ? }
}