类型别名与接口

类型别名

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

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

Interface接口初步了解

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

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

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

 接口与类型别名的区别

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

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

 接口非必选值要定义

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

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

 接口允许加入任意值

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

 接口里的方法

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

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

 

 接口继承

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

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

 

posted on 2021-07-05 16:38  紅葉  阅读(191)  评论(0编辑  收藏  举报