ts 类

139 阅读1分钟

1、类

class Animal { // 大括号
    name: string; //属性加上类型 类似单独声明变量 let name:string,只是不用let。es6的class属性不用在这里写出来。在constructor中有即可
    constructor(name){ // 构造函数
        this.name = name;
    }
    run(){ //方法 类似单独声明方法 function run(){}只是不用function
        console.log(`${this.name} is running`);
    }

}
const cat = new Animal('miao');
cat.run()

2、继承

class Dog extends Animal { //只需extends 属性、构造函数和方法都会继承过来
    bark(){//可以新添加属性
        console.log(`${this.name} is barking`)
    }
}

const doudou = new Dog('doudou');
doudou.run();
doudou.bark();

3、继承 重写

class Cat extends Animal{
     constructor(name){
         super(name)
     }
     run(){
         console.log('Meo,,,,')
         super.run()
     }
}
const mimi= new Cat('mimi')
mimi.run();

4 、ts属性方法修饰符,默认(不写)是public,还有private、protect和static

public 在实例或子类实例上可读写

private 在实例上不可读写,不可被继承

readonly 实例或子类实例可读

protected 子类可继承,可以在方法中使用,但不可在实例和子类实例上访问

static 类上的属性或方法 static age = 18;