1. 程式人生 > >從零開始的typescript 類 泛型 介面

從零開始的typescript 類 泛型 介面

//類
class Person {  //建立一個類
    public  name;        //屬性   public公共方法也是預設方法類外部也可以訪問
    protected age;       //       protected類的內部與子類可以訪問到
    private weight;      //       private  私有的 內部可以訪問
    //類的建構函式  只調用一次
    eat() {            //方法     預設與public相同
        console.log("i'am eating ");     //只有內部可以訪問
    }
    constructor(public height:string , height2){    //和上面的差不多 不過不能省略public
        console.log("haha");
    }
}

// extends  宣告繼承關係   可以繼承父類的所有屬性與方法
    class Employee extends Person {
    constructor(name:string,code:string){
        super(name);   //super 呼叫父類的建構函式  子類必需要有父類
        console.log("xixi");
        this.code=code;
    }
        code:string;
        work () {
            super.eat();   //super 呼叫父類 其他方法
            this.doWork();
        }
        private doWork(){  //設為私有變數,就只能先eat再doWork
            console.log("im working")
        }
    }
    var e1=new Employee("name","1");   //可以獲得所有繼承的值
    e1.work();

    var p1=new Person();  //例項化一個類
    p1.eat();

//類的方法  主要就是class 建立一個類 然後建立屬性方法  extends 用於繼承 super用於呼叫父類函式的建構函式或者

   var  workers:Array<Person>=[];  //泛型  只能選用制定的型別
    workers[0]=new Person("zhangsan");
    workers[1]="2";
    console.log(workers);
​

// 泛型  不知道和any有啥區別  

// 介面  不同類共同特性提取出來  用interface定義
interface Animal {
    eat();
}
class Sheep implements Animal{    //implements來實現
    eat() {
        console.log("i eat grass");
    }
}
class Tiger implements  Animal{
    eat(){
        console.log("i eat meat");
    }
}

//介面