typescript(Day4)接口
这里所说的接口并不是前后端数据交互的api接口,而是typescript对类型约束的接口。
接口都是使用interface
关键字来定义接口
接口可以和现实生活中的接口相互呼应,是一种规范,可以让程序更加的健壮,体验预知到一些可能发生的错误
typescript中的接口有很多,如:
- 属性接口
- 函数类型接口
- 可索引接口
- 可拓展接口、接口继承
属性接口:
属性接口 - - TS中处理json对象属性的一种接口
属性接口案例 - - 封装ajax
属性接口总结:
- 一旦使用了接口, 那么传递的参数就一定要按照接口的规范来严格执行,其中
?;
符号定义的属性
表示的是可选接口 这种属性如果不写也可以
函数接口类型约束
函数类型接口 - - 对方法传入的参数以及返回值进行约束
函数接口总结
- 定义了函数的接口以后, 形参个数 形参类型,返回值类型都必须要保持一致
可索引接口
可索引接口 - - 主要用来规范数组和对象的 (使用的场景并不是很多)
- 数组的可索引接口
数组使用索引接口较少的原因是数组的索引本身就是number数字类型,和原本定义的方法基本上是一样的,所以在数组上使用索引接口不是很有必要 - 对象的可索引接口
定义了对象的索引接口之后,使用这个接口的对象就必要得要严格的按照接口定义的索引类型,键值类型的形式来定义对象。
类类型接口
用来规范类的一种接口, 这个和抽象类的概念很像 基本就是提供模板 让子类去仿照这个模板进行生产
类在使用接口的时候使用 需要使用关键字implements
引用接口 相当于抽象类继承时的extends
!!!!!! 有一个小细节 使用类类型的接口的时候 一定要有接口的每一个属性和方法 但是方法的形参可以不写不会报错 但是写了就必须要保持一致 !!!!!!
这个也就是类类型接口和抽象类的区别之一了 抽象类的话必须要保持形参上的完全一致
接口拓展
接口也是可以有继承关系的,同时接口之间的继承也是使用关键字
extends
关键字来继承,如果有某个类、数组、对象、方法使用了一个有继承父类的接口,那么这个对象除了要实现使用这个接口本身的规范以外还要实现父接口的一些规范
接口总结:
- 接口是一个非常非常好用的一个机制,能够让我们代码更加的健壮,不容易发生一些意想不到的错误
- 接口种类也不是很多,所以掌握起来并不是很难
- C#也有接口的概念,如果有其他面向对象语言基础。ts学起来并不是很难