• ts中接口的用法


    ts中的接口主要的作用是:

    • 对“对象”进行约束描述
    • 对“类”的一部分行为进行抽象

    一、属性接口

    接口中可定义 确定属性、可选属性、任意属性、只读属性

    1、确定属性
    interface UserInfo {
      name: string;
      age: number;
    }
    
    const myInfo: UserInfo = {
      name: "haha",
      age: 20
    };

    接口中约束好的确定属性,定义对象变量的时候 不能少

    2、可选属性

    interface UserInfo {
      name: string;
      age: number;
      sex?:string 
    }
    
    const myInfo: UserInfo = {
      name: "haha",
      age: 20
    };

    接口中的可选属性,是表示在对象变量中可以不存在

    3、任意属性

    interface UserInfo {
      name: string;
      age: number;
      sex?:string ;
      [propName: string]:any;
    }
    
    const myInfo: UserInfo = {
      name: "haha",
      age: 20,
      test1: 'lala',
      test2: 'ff',
      test3:123
    };

    注:一旦定义了任意属性,那么确定属性和可选属性的类型都必须是任意属性类型的子类;

    定义了任意属性后,对象变量中的属性个数才可以出现比接口的属性数量多的情况

    4、只读属性

    interface UserInfo {
      readonly id: number;
      name: string;
      age: number;
      sex?: string;
      [propName: string]: any;
    }
    
    const myInfo: UserInfo = {
      id: 1,
      name: "haha",
      age: 20,
      test1: "lala",
      test2: "ff",
      test3: 123
    };

    只读属性也是确定属性,在对象变量定义的时候必须有值,此后不能修改

     二、函数接口

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

    interface Func {
      (param1: string, param2: number): boolean;
    }
    let myFunc: Func = function(param1, param2){
      return typeof param1 === "string" && typeof param2 === "number";
    };
    myFunc("22222", 1111);

    三、索引接口(不常用)

    可对数组或对象进行约束

    interface ArrIndex {
        [index:number]: string
    }
    interface Obj {
      [index:string]:string
    } let myArr: ArrIndex
    = ['first','second']
    let myObj:Obj = {
      name: 'kkkk'
    }

     四、类接口

    对类进行约束,和抽象类有点相似

    •  类实现接口implements
    • 接口继承接口
    • 接口继承类

     

     

     

  • 相关阅读:
    Flask入门到精通(二)
    MySQL安装配置,命令,异常纪要
    JQuery 选择器
    redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
    pssh 不能执行指定用户命令
    VMware 命令行下安装以及导入Ubuntu系统
    Linux CPU相关信息查看
    Ubuntu 16.04 Mxnet CPU 版本安装
    Ubuntu 16.04 TensorFlow CPU 版本安装
    <转>揭秘DNS后台文件:DNS系列之五
  • 原文地址:https://www.cnblogs.com/lihuijuan/p/12148691.html
Copyright © 2020-2023  润新知