1️⃣ 接口的概念

TS 的接口用于约束类,对象,函数的契约( 标准 )
契约( 标准 )的形式

  1. 1. API:弱标准
  2. 1. 代码约束:强标准

1️⃣ 接口的使用

接口和类型别名一样不出现在编译的结果中。

2️⃣ 接口约束对象

  1. interface User {
  2. name: string
  3. age: number
  4. }

2️⃣ 接口约束函数

  1. // 函数作为一个方法时
  2. interface func1 {
  3. fun1(): number
  4. fun2: () => string
  5. }
  6. let obj: func1 = {
  7. fun1() {
  8. return 1;
  9. },
  10. fun2() {
  11. return '1';
  12. }
  13. }
  14. // 直接约束一个函数
  15. interface funRestrain {
  16. (a: number, b: number): boolean
  17. }
  18. function fun(a: number, b: number): boolean {
  19. return true;
  20. }
  21. let func: funRestrain;
  22. func = fun;

2️⃣ 接口的继承

  1. // 接口单继承
  2. interface A {
  3. a: number
  4. }
  5. interface B extends A {
  6. b: number
  7. }
  8. let c: B = {
  9. a: 1,
  10. b: 2
  11. }
  12. // 接口多继承
  13. interface A {
  14. a: number
  15. }
  16. interface B {
  17. b: number
  18. }
  19. interface C extends A, B { // 接口继承不可以修改继承的成员
  20. // a: string 这样是不允许的
  21. c: number
  22. }
  23. let d: C = {
  24. a: 1,
  25. b: 2,
  26. c: 3,
  27. }