zoukankan      html  css  js  c++  java
  • 类型别名与接口

    类型别名

     在上面的代码中,定义了一个对象类型的数组,并限制了对象的属性类型。目前对象中只有两个属性,如果有多个属性,上面的代码形式看上去就会特别复杂,并且,如果有同样类型的数组,也不能实现复用,为此,我们可以借助类型别名来修改上面的代码:

     定义别名的时候要以type关键字开始。上面的代码,除了使用类型别名外吗,还可以用类进行定义:

    Interface接口初步了解

    在公司进行招聘的时候,会先进行一个简历的初步筛选,下面实现一个简历自动筛选,允许年龄小于30,身高大于165的人进行面试:

     此时,如果老板新增需要,要求看到每位面试者的简历,我们需要再添加一个方法:

     现在,我们为了实现功能,使用了两个方法,并且,这两个方法的类型注解时一样的。但是在程序开发中,为了实现代码重用,对于相同的类型注解,需要做统一的约束,可以使用类型别名的方法解决代码重复问题,也可以使用接口语法:

     接口与类型别名的区别

    通过上面的例子,我们会发现,接口和类型别名的语法和用处很相似,但需要注意的是,这两者还是有些许不同的:类型别名可以直接给类型,比如string,而接口必须代表对象

     在类型别名中,我们可以这样定义一个类型,但是在接口中,这种写法是不被允许的,因为接口必须是一个对象:

     接口非必选值要定义

    继续上面简历筛选的例子,新增一个要求,如果面试者提供了自己的学历,就将学历和其他信息一同展示出来,也就是说,学历是非必须的,如果有就展示,没有就不处理。

    在typescript中,在进行接口定义时,可选值就是在:号前加一个?

     接口允许加入任意值

    当简历中允许用户自由发挥,想写什么就写什么的时候,由于不知道所写内容,类型自然也不固定,这个时候就需要使用任意值了:

     接口里的方法

    接口里不仅可以存属性,还可以存方法,比如下面的say()方法。

     当我们在原来的代码基础上添加了方法后,程序里面就报错了,这是因为我们的对象里面没有这个say()方法,只需要添加上就可以了:

     

     接口继承

    接口也可以用于继承,比如新写一个Java接口,继承于Person接口

     此时,你就会发现下面我们调用getResume()方法的地方报错了,因为Java接口中有work()方法,所以我们的对象中也必须传入这个方法:

  • 相关阅读:
    【bzoj2500】幸福的道路 树形dp+单调队列
    【ARC069F】Flags 2-sat+线段树优化建图+二分
    【bzoj2437】[Noi2011]兔兔与蛋蛋 二分图最大匹配+博弈论
    剑指offer——树的子结构
    剑指offer——反转链表
    腾讯算法岗面试算法题——计数排序
    作业帮面试题
    剑指offer——重建二叉树
    剑指offer——二维数组中的查找
    删除链表中重复的结点
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14921786.html
Copyright © 2011-2022 走看看