螺竹编程
发布于 2024-05-27 / 3 阅读
0

TypeScript/面向对象:接口

TypeScript中的接口(interfaces)是一种用于定义对象形状的语法结构。它们提供了一种方式来描述对象应该具有的属性和方法。接口在TypeScript中是非常重要的概念,因为它们允许我们在编译时捕获代码中的错误,提高了代码的可靠性和可维护性。

下面是一个简单的示例,定义了一个名为Person的接口:

interface Person {
  name: string;
  age: number;
  speak(): void;
}

在这个例子中,Person接口定义了一个具有nameage属性,以及speak()方法的对象。在TypeScript中,接口可以用于描述对象的形状,但不能实现具体的行为,因此在接口中定义的方法都是抽象的。

我们可以使用这个接口来定义一个满足Person接口要求的对象:

const person: Person = {
  name: 'Alice',
  age: 30,
  speak() {
    console.log(`My name is ${this.name} and I'm ${this.age} years old.`);
  }
};

注意,这个对象必须包含接口定义的所有属性和方法,否则TypeScript编译器会报错。

接口还可以用于定义可选属性和只读属性。例如:

interface Car {
  model: string;
  year: number;
  color?: string; // 可选属性
  readonly vin: string; // 只读属性
}

const car: Car = {
  model: 'Tesla Model S',
  year: 2022,
  vin: '1234567890'
};

在这个例子中,color属性是可选的,因此它可以省略不写。而vin属性是只读的,因此它不能被修改。