zoukankan      html  css  js  c++  java
  • TS之接口:②函数类型接口、索引接口、类类型接口

    1.函数接口:

    对方法传入的参数以及返回值进行约束——批量约束

    interface encrypt {
      (key: string, value: string): string;
    }
    
    // 对传入的参数以及返回值进行约束
    let md1: encrypt = function (key: string, value: string): string {
      return key + value;
    }
    console.log(md1('张三', '初一一班'));
    
    
    let md2: encrypt = function (key: string, value: string): string {
      return key + value;
    }
    console.log(md2('李四', '初二三班'));

     2.可索引接口

    对数组、对象的约束

    (1)对数组的约束

    interface UserArr {
      [index: number]: string
    }
    
    let arr: UserArr = ['aaa', '111'];
    console.log(arr[1]);

    (2)对对象的约束

    interface UserObj {
      [index: string]: string
    }
    
    let obj: UserObj = { name: '张三', age: '20' }
    console.log(obj);

    3.类类型接口

    对类的约束(和抽象类相似)

    interface Animal {
      name: string;
    
      eat(str: string): void;
    }
    
    class Dog implements Animal {
      // 必须包含name
      name: string;
      constructor(name: string) {
        this.name = name;
      }
      // 必须包含eat方法
      eat() {
        console.log(this.name + '吃肉');
      }
    }
    
    let d = new Dog('达摩');
    d.eat();

    4.接口的扩展

    接口也是可以继承的

    // 父接口
    interface Animal {
      eat(): void;
    }
    // 子接口继承自父接口
    interface Person extends Animal {
      work(): void;
    }
    
    class Programmer {
      name: string;
      constructor(name: string) {
        this.name = name;
      }
    
      coding() {
        console.log(this.name + "在写代码");
      }
    }
    
    // 类的继承和接口的继承 class Web extends Programmer implements Person { constructor(name: string) { super(name); } // 由于继承关系,所以这个类必须同时包含父接口和子接口的方法 eat() { console.log(this.name + "在吃饭"); } work() { console.log(this.name + "在工作"); } } let w = new Web('张三'); w.work(); w.eat(); w.coding();
  • 相关阅读:
    去中心化存储的QoS是什么?
    谈如何真正地做好去中心存储?
    Kowala协议:一组分布式,自我调节,资产跟踪特性的加密货币(二)
    MySQL主从备份
    Java面试总结-基础篇2
    Java面试总结-基础篇1
    锁定网络问题的方法
    我是如何在实际项目中解决MySQL性能问题
    serialVersionUID的作用
    Windows和Linux下如何自动备份MySQL
  • 原文地址:https://www.cnblogs.com/codexlx/p/12771822.html
Copyright © 2011-2022 走看看