TypeScript接口——interface

目录

一、接口概述:

二、接口类型介绍:

 1、属性接口:

2、 函数接口:

3、可索引接口:

(1)可索引接口约束数组示例:

(2) 可索引接口约束对象示例:

4、类类型接口:

三、接口的扩展:


一、接口概述:

        首先说明一点,接口是TypeScript的一部分,它不能转换成JavaScript代码段。

        其次,接口是一种抽象的东西,在面向对象的编程中,接口是一种规范的定义,主要起到约束、限定的作用。因此,它的属性字段不可以进行初始化赋值,方法字段不可以有具体的实现。

        接口不关心内部的状态数据,也不关心内部方法的实现细节,它只是规定类、对象必须提供某些属性和方法以满足接口的需求。        

        根据接口的在不同情况下的用途,可以将接口分为:属性接口、函数接口、可索引接口、类类型接口。同时接口还可以进行扩展,可以通过接口之间的继承机制来实现对其进行扩展。

        接口是一个定义,抽象的。我们一般会通过类来对接口进行具体的实现。

二、接口类型介绍:

        接口是比较灵活的,我们根据接口的用途可以将接口分为:属性接口、函数接口、可索引接口、类类型接口。

 1、属性接口:

        我们在编程过程中可以定义一个接口,接口内只有属性字段,我们可以成为该接口为一个属性接口。同时我们可以对于这些属性给与一些限定,例如属性的可选性“?”、属性的只读性“readonly”等。

 示例:假设有一个函数需要接收指定类型的参数。

        如果上述函数接收的对象属性不仅仅包含“name” 、"age",还有“gender”、“address”、"phone"等更多的属性呢?如果不仅仅只有 printPersInfo 这一个函数的参数要求参数是特定的类型呢?

        这个时候我们就可以定义一个属性接口,利用接口来约束参数。

2、 函数接口:

        函数接口主要用于约束函数的参数和返回值。要求该函数必须传入指定类型的参数,并且得到指定类型的返回值。

3、可索引接口:

        可索引接口用于数组或者对象的约束。

// 定义了一个可索引接口
interface IterTemp {
    [attrName: type1]: type2,
}

/*
* 对于数组而言:
* attrName 表示数组的索引
* type1 表示数组索引的类型
* type2 表示索引值,即数组元素的类型。(索引 <==\==> 索引值)
*
* 对于对象而言:
* attrName 表示对象的属性
* type1 表示的对象属性类型
* type2 表示对象的属性值类型。(属性 <==\==> 属性值)
*/

// type只能是string或者number类型。

(1)可索引接口约束数组示例:

(2) 可索引接口约束对象示例:

错误示例:

正确示例: 

 

 

4、类类型接口:

        类类型的接口类似于抽象类,实际上就是把“属性接口”和“函数接口”同时使用。类如果需要对接口进行实现,需要使用“implements”关键字。

 

三、接口的扩展:

        接口可以通过继承来进行扩展。对接口进行实现的时候必须要实现所有接口定义的约束条件。

        接口的继承使用extends关键字。

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值