📅  最后修改于: 2023-12-03 15:20:43.169000             🧑  作者: Mango
在 TypeScript 中,“实现”子句用于在类定义中声明实现接口的方法和属性。它提供了一种清晰明了的方式来定义一个类实现一个接口的完整行为。
在 TypeScript 中,“实现”子句是一个在类定义中用于声明该类实现自定义接口的语法。它告诉编译器,这个类有资格实现该接口,因此它需要为该接口中的所有需要实现的方法和属性提供完整的实现。
以下是一个示例,其中类 Square
实现了接口 Shape
:
interface Shape {
color: string;
getName(): string;
}
class Square implements Shape {
constructor(public color: string, public size: number) {}
getName(): string {
return "Square";
}
}
上面的代码中,我们定义了接口 Shape
,它具有两个属性:color
和 getName()
方法。然后我们定义了一个 Square
类,它实现了 Shape
接口。类中必须提供 color
属性和 getName()
方法的实现。
为了使用 “实现” 子句,您需要按照以下步骤进行操作:
implements
后跟您的接口名称。以下是一个更为详细的例子,阐述了如何使用 “实现” 子句:
interface Animal {
name: string;
makeSound(): void;
}
class Dog implements Animal {
constructor(public name: string) {}
makeSound(): void {
console.log("Woof!");
}
}
const myDog = new Dog("Buddy");
console.log(myDog.name); // 输出 "Buddy"
myDog.makeSound(); // 输出 "Woof!"
在上面的示例中,我们首先定义了一个 Animal
接口,它有一个 name
属性和一个 makeSound()
方法。然后我们定义一个 Dog
类,实现了 Animal
接口,它必须提供 name
属性和 makeSound()
方法的实现。最后,我们创建一个新的 Dog
实例,并使用它调用 name
和 makeSound()
。
您可以在类定义中使用多个 implements
子句,来实现多个接口。该类必须为每个接口提供完整的实现,否则 TypeScript 编译器将给出警告。
以下是一个使用多个接口的示例:
interface Vehicle {
start(): void;
stop(): void;
}
interface Radio {
turnOn(): void;
turnOff(): void;
}
class Car implements Vehicle, Radio {
start(): void {
console.log("Starting car...");
}
stop(): void {
console.log("Stopping car...");
}
turnOn(): void {
console.log("Turning on the radio...");
}
turnOff(): void {
console.log("Turning off the radio...");
}
}
const myCar = new Car();
myCar.start(); // 输出 "Starting car..."
myCar.turnOn(); // 输出 "Turning on the radio..."
myCar.turnOff(); // 输出 "Turning off the radio..."
myCar.stop(); // 输出 "Stopping car..."
在上面的示例中,我们定义了两个接口:Vehicle
和 Radio
。然后我们定义了一个 Car
类,它实现了这两个接口。类中必须提供 start()
、stop()
、turnOn()
和 turnOff()
方法的实现,以实现 Vehicle
和 Radio
的完整行为。
“实现”子句提供了一种清晰明了的方式来定义一个类实现一个或多个接口的完整行为。在 TypeScript 中,您可以使用 implements
子句声明类实现接口,并提供必要的实现。您还可以实现多个接口,但必须确保每个接口都得到了完整的实现。