接口声明引入新类型。接口是定义代码协定的常见方式。

任何一个类的实例只要实现了特定接口,就可以通过该接口实现多态。

接口通常包含属性和方法的声明

interface Style {
  color: string; // 属性
}
interface AreaSize {
  calculateAreaSize(): number; // 方法的声明
  someMethod(): void;     // 方法的声明
}

  • 接口属性
    接口属性可以是字段、getter、setter或getter和setter组合的形式。

属性字段只是getter/setter对的便捷写法。以下表达方式是等价的:

interface Style {
  color: string;
}

interface Style {
  get color(): string;
  set color(x: string);
}

实现接口的类也可以使用以下两种方式:

interface Style {
  color: string;
}


class StyledRectangle implements Style {
  color: string = '';
}

interface Style {
  color: string;
}


class StyledRectangle implements Style {
  private _color: string = '';
  get color(): string { return this._color; }
  set color(x: string) { this._color = x; }
}

类通过implements关键字实现接口,确保遵循接口定义的契约。

// 接口定义  
interface Drawable {  
  draw(): void;  
}  

// 类实现接口  
class Square implements Drawable {  
  side: number;  
  constructor(side: number) {  
    this.side = side;  
  }  
  draw(): void { // 必须实现接口方法  
    console.log(`Drawing square with side ${this.side}`);  
  }  
}  

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐