You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何在类内部定义接口?

TypeScript类内部声明接口的方法

TypeScript支持在类内部声明接口,这类接口属于类的成员范畴,使用方式和类的其他成员类似,可通过访问修饰符控制其可见范围。

基础用法示例

class AnimalHouse {
  // 在类内部声明接口
  interface Animal {
    dateOfBirth: any;
  }

  greeting(pa: Animal) {
    console.log(pa.dateOfBirth);
  }
}

// 外部需通过类名来引用该内部接口
const house = new AnimalHouse();
const cat: AnimalHouse.Animal = { dateOfBirth: '2023-05-10' };
house.greeting(cat);

访问修饰符控制可见性

可以为内部接口添加private或protected修饰符,限制其访问范围:

  • 私有接口:仅能在类内部使用,外部无法通过类名访问
class AnimalHouse {
  private interface PrivateAnimal {
    name: string;
  }

  private showAnimalName(animal: PrivateAnimal) {
    console.log(animal.name);
  }
}

// 以下代码会报错,因为PrivateAnimal是私有内部接口
// const dog: AnimalHouse.PrivateAnimal = { name: '旺财' };
  • 受保护接口:可在类内部及子类中访问,外部无法直接使用
class AnimalHouse {
  protected interface ProtectedAnimal {
    breed: string;
  }

  protected logBreed(animal: ProtectedAnimal) {
    console.log(animal.breed);
  }
}

class DogHouse extends AnimalHouse {
  showDogBreed(dog: ProtectedAnimal) {
    this.logBreed(dog);
  }
}

内容的提问来源于stack exchange,提问作者Ethel Stample

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:45:35