一、可索引接口

  • 数组、对象的约束(不常用) ```typescript // 1.ts定义数组的方式 var arr: number[] = [2342, 235325] var arr1: Array = [‘111’, ‘222’]

// 2.可索引接口,对数组的约束 interface UserArr {

  1. [index: number]: string

} var arr: UserArr = [‘aaa’, ‘bbb’]; console.log(arr[0]);

// 3.可索引接口,对对象的约束 interface UserObj {

  1. [index: string]: string

} var arr: UserObj = { name: ‘张三’ };

  1. <a name="3a9eb9ba"></a>
  2. ### 二、类类型接口
  3. - 对类的约束和抽象类抽象有点相似(常用)
  4. ```typescript
  5. // 1.把属性和方法都进行了约束
  6. interface Animal {
  7. name: string;
  8. eat(str: string): void;
  9. }
  10. // implements 参数实现
  11. class Dog implements Animal {
  12. name: string;
  13. constructor(name: string) {
  14. this.name = name;
  15. }
  16. eat() {
  17. console.log(this.name + '吃粮食')
  18. }
  19. }
  20. var d = new Dog('小黑');
  21. d.eat();
  22. // 跟抽象类相似,父级定义标准,子级按照标准进行
  23. class Cat implements Animal {
  24. name: string;
  25. constructor(name: string) {
  26. this.name = name;
  27. }
  28. eat(food: string) {
  29. console.log(this.name + '吃' + food);
  30. }
  31. }
  32. var c = new Cat('小花');
  33. c.eat('老鼠');