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

    类型别名

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

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

    Interface接口初步了解

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

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

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

     接口与类型别名的区别

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

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

     接口非必选值要定义

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

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

     接口允许加入任意值

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

     接口里的方法

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

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

     

     接口继承

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

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

  • 相关阅读:
    文件操作类2
    C# 统计文章中字符的种类和个数 哈希表和字典的使用
    hdu 1018 Big Number (求一个数的阶乘的位数,公式!!!)
    hdu 4313 Matrix (最小生成树krusual)
    孙子定理,求余定理
    poj 1005 Biorhythms (孙子定理,求余定理)
    poj 2151 Check the difficulty of problems (DP)
    poj1861/zoj1542 (最小生成树krusual)
    hdu 1256 画8 (模拟)
    hdu 2082 找单词 (母函数)
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14921786.html
Copyright © 2011-2022 走看看