zoukankan      html  css  js  c++  java
  • ts-接口(1)

    本篇LIst

    什么是接口?
    定义一个接口
    可选属性接口
    只读属性接口
    可添加属性接口
    函数接口
    

    什么是接口

    在这里插入图片描述

    定义接口

    // 1.定义一个接口
    
    interface Person {
        pName: string;
        pAge: number;
        pSex: string;
      }
      
      let person: Person = {
        pName: "xiaoming",
        pAge: 18,
        pSex: "woman",
      };
      
      function printPerson(person: Person): void {
        console.log(`kkkkk${person.pName}`);
      }
      
    

    可选属性接口

    // 2.接口-可选属性
    
    interface Circle {
      color: string;
      area: number;
    }
    
    interface CircleConfig {
      color?: string;
      radius?: number;
    }
    
    function createCircle(config: CircleConfig): Circle {
      let newCirlce: Circle = { color: "blue", area: 10 };
      if (config.color) {
        newCirlce.color = config.color;
      }
      if (config.radius) {
        newCirlce.area = config.radius;
        newCirlce.area = config.radius * config.radius * Math.PI;
      }
      return newCirlce;
    }
    
    let circle1: Circle = createCircle({ color: "red" });
    let circle2: Circle = createCircle({ radius: 20 });
    

    只读属性接口

    // 3.只读属性-初始化之后不能修改
    
    interface FullName {
      readonly firstName: string;
      readonly lastName: string;
    }
    let perName: FullName = { firstName: "liu", lastName: "dongyang" };
    
    //4. ReadonlyArray 只读数组. 禁用修改数组的方法,不予许进行修改
    //不可以把只读数组赋给普通数组,如果要赋值利用断言进行转化
    let re: ReadonlyArray<number> = [1, 2, 3, 4, 5];
    

    可添加属性接口

    //5.要传入额外的属性
    // 利用断言来跳过ts的类型检查
    let myCircle = createCircle({ color: "adad", black: "true" } as CircleConfig);
    
    //字符串索引签名
    interface Ecircle {
      color: string;
      radius: number;
      //字符串索引签名
      [propsName: string]: any;
    }
    
    //利用属性检查的是最外层的
    let circleOption = { color: "red", radius: 12, ridusssss: 21 };
    let mtCircle = createCircle(circleOption);
    

    函数接口

    //6. 函数类型
    interface CompareFuc {
      (first: number, last: number): boolean;
    }
    
    let myCompare: CompareFuc = function (first: number, last: number): boolean {
      return first > last;
    };
    
    let myCompare2: CompareFuc = function (a: number, b: number): boolean {
      return a > b;
    };
    let myCompare3: CompareFuc = function (a, b) {
      return a > b;
    };
    
  • 相关阅读:
    sap快捷登录
    转载(略有修改):Windows 8的承载网络设置方法(w8 创建无线网络/ap)
    转载:Keytool 工具介绍
    minecraft初探
    linux图像界面连接-xdm
    经典的始终经典(牛蛙)
    vmware install win8 and server2012 problem
    windows硬盘优化篇
    网络15软工个人作业5——软件工程总结
    个人作业4——alpha阶段个人总结
  • 原文地址:https://www.cnblogs.com/jackson1/p/13456377.html
Copyright © 2011-2022 走看看