TypeScript接口——interface

article/2025/9/25 12:33:32

目录

一、接口概述:

二、接口类型介绍:

 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关键字。

 

 


http://chatgpt.dhexx.cn/article/Zu8UHIyX.shtml

相关文章

【TypeScript】接口类型 Interfaces 的使用理解

导语&#xff1a; 什么是 类型接口&#xff1f; 在面向对象语言中&#xff0c;接口&#xff08;Interfaces&#xff09;是一个很重要的概念&#xff0c;它是对行为的抽象&#xff0c;而具体如何行动需要由类&#xff08;classes&#xff09;去实现&#xff08;implement&#x…

type 与 interface 的区别,你真的懂了吗?

大厂技术 高级前端 Node进阶 点击上方 程序员成长指北&#xff0c;关注公众号 回复1&#xff0c;加入高级Node交流群 在写 ts 相关代码的过程中&#xff0c;总能看到 interface 和 type 的身影。它们的作用好像都一样的&#xff0c;相同的功能用哪一个都可以实现&#xff0c;…

自定义字体 Typeface ttf

一、简介 有时候界面在设计app时会使用一些比较美观的字体&#xff0c;在安卓中使用起来也并不困难&#xff0c;随着安卓SDK的更新&#xff0c;它的实现方式也有所不同&#xff0c;该文章来看看怎么实现自定义字体。 二、普通方法 设置字体TextView.setTypeface(Typeface) pub…

TypeScript - Interfaces(接口)

目录 1、接口介绍 1.1 接口示例 2、可选属性 3、只读属性 4、额外的属性检查 5、函数类型 6、可索引的类型 &#xff17;、类类型 &#xff17;.1 类静态部分和实例部分 &#xff18;、继承接口 &#xff19;、混合类型 1&#xff10;、接口继承类 1、接口介绍 Ty…

type 与 interface

type 与 interface 官方文档是这么说的&#xff1a; For the most part, you can choose based on personal preference, and TypeScript will tell you if it needs something to be the other kind of declaration. If you would like a heuristic, use interface until you…

TypeScript中type和interface区别

typescript中interface介绍&#xff1a;TypeScript 中的接口 interface_疆~的博客-CSDN博客通常使用接口&#xff08;Interface&#xff09;来定义对象的类型。https://blog.csdn.net/qq_40323256/article/details/128478749 type type关键字是声明类型别名的关键字。用来给一…

TypeScript中interface 与 type的区别,你真的懂吗?

在写 ts 相关代码的过程中&#xff0c;总能看到 interface 和 type 的身影。它们的作用好像都一样的&#xff0c;相同的功能用哪一个都可以实现&#xff0c;也都很好用&#xff0c;所以也很少去真正的理解它们之间到底有啥区别&#xff0c; 分别在什么场景下使用&#xff0c;将…

Android 设置字体的三种方法(TypeFace)

http://blog.csdn.net/legend12300/article/details/69875816 Android系统默认字体支持四种字体&#xff0c;分别为&#xff1a; noraml &#xff08;普通字体,系统默认使用的字体&#xff09;sans&#xff08;非衬线字体&#xff09;serif &#xff08;衬线字体&#xff09;…

Android 之 Paint API —— Typeface (字型)

本节带来Paint API系列的最后一个API&#xff0c;Typeface(字型)&#xff0c;由字义&#xff0c;我们大概可以猜到&#xff0c;这个 API是用来设置字体以及字体风格的&#xff0c;使用起来也非常的简单&#xff01;下面我们来学习下Typeface的一些相关 的用法&#xff01; 官方…

Pycham_python 安装 gherkin

1.File>Settings>Plusings> 在MarketPlace标签下&#xff0c;搜索gherkin&#xff0c;选择如下图所示&#xff0c;点击Install&#xff0c;安装成功后重启pycharm即可 2&#xff0c;打开feature文件&#xff0c;就会有格式显示了 转载于:https://www.cnblogs.com/aide…

学Selenium自动化需要知道的之Python测试框架

根据StackoverFlow网站的开发者调查&#xff0c;Python是2019年增长最快的编程语言。在整体排名中&#xff0c;它甚至超越了Java&#xff0c;排在第二位&#xff0c;成为最受喜爱的编程语言之一。 Python流行的几个原因之一是对测试自动化框架的广泛支持。大多数流行的Python框…

机器学习框架Chainer学习

chainer优势——边定义边运行 当下已有的深度学习框架使用的是“定义后运行”机制。即意味着&#xff0c;首先定义并且固化一个网络&#xff0c;再周而复始地馈入小批量数据进行训练。由于网络是在任何前向、反向计算前静态定义的&#xff0c;所有的逻辑作为数据必须事先嵌入网…

Jenkins - Hello World

开始 Jenkins 的第一行代码 无论学哪种语言&#xff0c;都是从 hello world 开始&#xff0c;因为这个学会了&#xff0c;就说明你已经从入门到精通了。 让我们来看看 Jenkins 的 hello world 吧 0. 登录 Jenkins 1. 新建 item 2. 创建一个 Freestyle project 3. 增加执行命令…

Cucumber--基于vue前端的自动化测试(四)

cucumber是BDD (Behavior-driven development&#xff0c;行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试&#xff0c;使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法&#xff0c;而Cucumber是可以执行它们的工具。 cucumber本质上是使用根…

【Jenkins】【Jenkins 使用】Jenkins 与 Git

【文章末尾给大家留下了大量的福利】 1、概述 Jenkins 与 Git 的结合使用&#xff0c;可以理解为是 Jenkins 的一个强大之处。为什么要这么说&#xff0c;简要说明一下这个工作模式就能理解&#xff1a; 一个软件项目&#xff0c;开发过程中通常都会使用到一些源码管理工具&am…

SSH and GPG keys

问题&#xff1a;gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository. gitgithub.com&#xff1a;权限被拒绝&#xff08;publickey&#xff09;。 我相信很多程序员开始都会对Git比较陌生。但是用过几次&#xff0c;就会觉得Git的功…

自动化测试工具Cucumber的简单介绍

背景介绍 随着测试的发展&#xff0c;测试自动化越来越成为人们的关注点。 现在我们公司也在进行接口自动化的推广&#xff0c;在我看来接口自动化的价值就在于整体项目的回归&#xff0c;完成一些没法通过人力进行的测试&#xff0c;比如压力测试。 为了解决测试开发人员和…

【Jenkins】学习笔记

学习笔记 一、Jenkins1.1、Jenkins的作用 二、下载安装2.1、安装环境2.2、安装GitLab2.3、安装Jenkins 三、Jenkins Git Maven 部署配置3.1、安装maven插件3.2、新建项目3.3、自动发布到测试服务器 四、publish over ssh 配置4.1、超时机制4.2、shell的日志输出4.3、运行前清…

快速了解KEGG

我们有时候很关心基因所在的pathway、上下调控以及一堆基因富集到的pathway&#xff0c;再或者同源基因等信息&#xff0c;KEGG数据库也算是目前&#xff08;注释&#xff09;常用的明星数据库 KEGG&#xff1a;京都基因和基因组百科全书&#xff1a;KEGG项目于1995年5月在日本…