Typescript类中extends和implements的作用

在ES6中,类的继承可以通过extends实现。

class Animal {
    name;
    sayHello(){}
}  

class Dog extends Animal {}

// 
const dog = new Dog();
// 在Dog的实例dog中也会存在name属性和sayHello方法,因为Dog继承自Animal类

在TS的类中,extends同样也是用于类的继承:

class Animal {
    name: string = '';
    sayHello() {
        
    }
}
class Dog extends Animal {}
const dog:Dog = new Dog();
// 和ES6中类似,在Dog的实例dog中也会存在name属性和sayHello方法,因为Dog继承自Animal类

在TS类中,类除了可以继承父类还可以继承接口,也叫实现接口,通过关键字implements来实现。

interface Animal {
    food: string
    eat(food: string): void
}
// Cat类实现Animal接口的时候需要能够兼容Animal接口才行,否则会报错。
class Cat implements Animal {
    food: string = 'fish';
    eat(food: string): void {

    }
}
//
const cat: Cat = new Cat();

温馨提示:extends在TS的类中是表示继承的作用,但是在泛型中却不是代表继承。具体代表什么可以参考这篇文章:https://www.cnblogs.com/brucefq/p/16643340.html

posted @ 2022-09-23 22:32  闯入码途的水产人  阅读(2186)  评论(1编辑  收藏  举报