TS クラスとインターフェイスの使用法

class Person {
    
    //Ts的类不能加访问修饰符
    public age: number;//默认成员可见性就是public可以不加,以下省略
    Sex: string = "male";//声明属性并且设置初始值 同Sex="male";(ts可省略类型注解,会自动推断)

    constructor(age: number, Sex: string) {
    
    //形参一定要提供类型注解,否则会被隐式指定any
        this.age = age;
        this.Sex = Sex;
    }

    Sum(a: number, b: number): number {
    
    
        return a + b;
    }
}

let p1 = new Person(12, "Female");
console.log(p1.age, p1.Sex);
console.log("Sum is:" + p1.Sum(2, 3));

//子类继承父类
class Animal {
    
    
    Name: string;
}

class Dog extends Animal {
    
    
    Bark(): void {
    
    
        console.log("汪汪");
    }
}

let d1 = new Dog();
d1.Name = "狗";
console.log(d1.Name);
d1.Bark();


interface Bird {
    
    
    Bark(): void;
}

interface Move {
    
    
    MoveMethod(): void;
}

//子类实现父类接口
class Eagle implements Bird, Move {
    
    //子类可以实现多个父类接口
    Bark() {
    
    
        console.log("喳喳");
    }

    MoveMethod() {
    
    
        console.log("i can fly");
    }
}

//子类的对象实现父类接口
let b1 = new Eagle();
b1.Bark();
b1.MoveMethod();
//对象跳过类直接实现接口
let b2: Bird = {
    
    
    Bark() {
    
    
        console.log("喳喳喳喳(这是通过对象直接实现接口,没通过类)")
    }
}
b2.Bark();

おすすめ

転載: blog.csdn.net/weixin_48251552/article/details/130002909