「前端+鸿蒙」鸿蒙应用开发-TS接口-语法&多态

发布于:2024-06-11 ⋅ 阅读:(162) ⋅ 点赞:(0)

在 TypeScript 中,接口(Interfaces)是一种强大的方式来定义对象的结构,它们用于类型检查和确保对象符合特定的结构。接口也可以用于类,实现类似多态的特性。以下是 TypeScript 中接口的语法和多态的快速入门指南。

TS快速入门-接口-语法

定义接口

接口用于定义对象的结构,可以包括属性、函数、可选属性等:

interface Person {
    name: string;
    age: number;
    speak?: () => void; // 可选属性
}
实现接口

类可以通过 implements 关键字实现一个或多个接口:

class Student implements Person {
    name: string;
    age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }

    speak(): void {
        console.log(`My name is ${this.name} and I am studying TypeScript.`);
    }
}
接口继承

接口可以继承其他接口,类似于类继承:

interface Animal {
    name: string;
    makeSound(): void;
}

interface Dog extends Animal {
    breed: string;
}

class Labrador implements Dog {
    name: string;
    breed: string;

    constructor(name: string, breed: string) {
        this.name = name;
        this.breed = breed;
    }

    makeSound(): void {
        console.log('Bark!');
    }
}
多态

多态允许同一个接口在不同的上下文中有不同的实现:

interface Animal {
    makeSound(): void;
}

class Dog implements Animal {
    makeSound(): void {
        console.log('Woof!');
    }
}

class Cat implements Animal {
    makeSound(): void {
        console.log('Meow!');
    }
}

function makeAnimalSound(animal: Animal): void {
    animal.makeSound(); // 多态的使用,实际调用的方法取决于 animal 的类型
}

let dog = new Dog();
let cat = new Cat();

makeAnimalSound(dog); // 输出: Woof!
makeAnimalSound(cat); // 输出: Meow!

示例代码

以下是一个使用 TypeScript 接口的示例,展示了接口的基本语法和多态的使用:

// 定义接口
interface Greeting {
    greet(): void;
}

// 实现接口的类
class Person implements Greeting {
    name: string;

    constructor(name: string) {
        this.name = name;
    }

    greet(): void {
        console.log(`Hello, my name is ${this.name}!`);
    }
}

// 另一个实现接口的类
class Robot implements Greeting {
    model: string;

    constructor(model: string) {
        this.model = model;
    }

    greet(): void {
        console.log(`Hello, I am ${this.model}!`);
    }
}

// 使用接口实现多态的函数
function introduce(greeting: Greeting): void {
    greeting.greet(); // 调用实现 Greeting 接口的 greet 方法
}

// 创建 Person 和 Robot 的实例
let person = new Person('Alice');
let robot = new Robot('Bender');

// 通过接口引用调用多态函数
introduce(person); // 输出: Hello, my name is Alice!
introduce(robot);  // 输出: Hello, I am Bender!

TypeScript 中接口的语法和多态的使用。接口为定义对象和类的结构提供了一种灵活的方式,而多态则允许函数对不同类型的对象执行不同的操作,这使得代码更加通用和可扩展。


网站公告

今日签到

点亮在社区的每一天
去签到