第十五节TypeScript 接口

1、简介

     接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要有由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。

2、接口的定义

interface interface_name { 
}

实例:

interface IPerson { firstName:string, lastName:string, sayHi: ()=>string 
} var customer:IPerson = { firstName:"Tom",lastName:"Hanks", sayHi: ():string =>{return "Hi there"} 
} console.log("Customer 对象 ") 
console.log(customer.firstName) 
console.log(customer.lastName) 
console.log(customer.sayHi())  var employee:IPerson = { firstName:"Jim",lastName:"Blakes", sayHi: ():string =>{return "Hello!!!"} 
} console.log("Employee  对象 ") 
console.log(employee.firstName) 
console.log(employee.lastName)

执行结果:

Customer 对象TomHanksHi thereEmployee  对象JimBlakes

以上实例我们定义一个接口Iperson,接着定义了一个变量customer,它的类型是IOperson。

Customer实现了接口Ioperson的属性和方法。

注意:接口不能JavaScript,它知识TypeScript的一部分。

3、联合类型和接口

实例:

interface RunOptions { program:string; commandline:string[]|string|(()=>string); 
} // commandline 是字符串
var options:RunOptions = {program:"test1",commandline:"Hello"}; 
console.log(options.commandline)  // commandline 是字符串数组
options = {program:"test1",commandline:["Hello","World"]}; 
console.log(options.commandline[0]); 
console.log(options.commandline[1]);  // commandline 是一个函数表达式
options = {program:"test1",commandline:()=>{return "**Hello World**";}}; var fn:any = options.commandline; 
console.log(fn());

执行结果:

Hello
Hello
World
**Hello World**

4、接口继承

接口继承就是说接口可以通过其他接口来扩展自己。

Typescript 允许接口继承多个接口。

继承使用关键字 extends。

单接口继承语法格式:

Child_interface_name extends super_interface_name

多接口继承语法格式:

Child_interface_name extends super_interface1_name, super_interface2_name,…,super_interfaceN_name

继承的各个接口使用逗号 , 分隔。

1)、单继承实例:

interface Person { age:number 
} interface Musician extends Person { instrument:string 
} var drummer = <Musician>{}; 
drummer.age = 27 
drummer.instrument = "Drums" 
console.log("年龄:  "+drummer.age)
console.log("喜欢的乐器:  "+drummer.instrument)

执行结果:

年龄:  27

喜欢的乐器:  Drums

2)、多继承实例

interface IParent1 { v1:number 
} interface IParent2 { v2:number 
} interface Child extends IParent1, IParent2 { } 
var Iobj:Child = { v1:12, v2:23} 
console.log("value 1: "+Iobj.v1+" value 2: "+Iobj.v2)

执行结果:

value 1: 12 value 2: 23

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浮点数的转换--IEEE 754

IEEE754标准是一种浮点数表示标准&#xff0c;一般分为 单精度&#xff08;32位的二进制数&#xff09;&#xff1b;双精度&#xff08;64位的二进制数&#xff09; 根据国际标准IEEE754&#xff0c;任意一个二进制浮点数V可以表示为下面形式&#xff1a; V (-1)^s *&#…

民富购:塑造数字时代下的电商革新与社会责任典范

在数字经济时代,电子商务已经成为建立市场关系、创新产业和服务业态、促进经济增长的重要途径和手段。特别是在中国,新型电子商务的迅猛发展已经改变了生产和生活的方方面面,不仅催生了众多新业态,还通过“互联网”战略让许多传统产业和服务焕发了新的生机。民富购,作为扬羊(广…

SQL进阶理论篇(二十一):基于SQLMap的自动化SQL注入

文章目录 简介获取当前数据库和用户信息获取MySQL中的所有数据库名称查询wucai数据库中的所有数据表查看heros数据表中的所有字段查询heros表中的英雄信息总结参考文献 简介 从上一小节&#xff0c;可以发现&#xff0c;如果我们编写的代码存在着SQL注入的漏洞&#xff0c;后果…

FME软件安装教程及问题解决

FME软件 FME(Feature Manipulate Engine,简称FME)是加拿大Safe Software公司开发的空间数据转换处理系统,它是完整的空间ETL解决方案。该方案基于OpenGIS组织提出的新的数据转换理念“语义转换”,通过提供在转换过程中重构数据的功能,实现了超过250种不同空间数据格式(模型)之…

Scikit-Learn线性回归(一)

Scikit-Learn线性回归一 1、线性回归概述1.1、什么是回归1.2、什么是线性1.3、什么是线性回归1.4、线性回归的优缺点1.5、线性回归与逻辑回归2、线性回归的原理2.1、线性回归的定义与原理2.2、线性回归的损失函数3、Scikit-Learn线性回归3.1、Scikit-Learn线性回归API3.2、Scik…

华清远见嵌入式学习——ARM——作业3

作业要求&#xff1a; 代码效果图&#xff1a; 代码&#xff1a; led.h #ifndef __LED_H__ #define __LED_H__#define RCC_GPIO (*(unsigned int *)0x50000a28) #define GPIOE_MODER (*(unsigned int *)0x50006000) #define GPIOF_MODER (*(unsigned int *)0x50007000) #defi…

使用 Amazon CodeCatalyst 中的生成式 AI 助手 Amazon Q 提高开发人员的工作效率(预览版)

今天&#xff0c;我很荣幸能够向各位介绍 Amazon CodeCatalyst 中可用的新型生成式 AI 助手 Amazon Q&#xff0c; 主要用于加速软件分发。 加速软件功能开发 – Amazon Q 的这项功能开发技术可以帮助您快速地完成软件开发任务&#xff0c;例如添加注释和 README、优化问题描述…

TensorFlow 模型中的回调函数与损失函数

回调函数 tf.keras 的回调函数实际上是一个类&#xff0c;一般是在 model.fit 时作为参数指定&#xff0c;用于控制在训练过程开始或者在训练过程结束&#xff0c;在每个 epoch 训练开始或者训练结束&#xff0c;在每个 batch 训练开始或者训练结束时执行一些操作&#xff0c;…

GIT 不同仓库之间合并代码

合并两个不同仓库的代码通常需要以下步骤。这里以合并两个远程仓库为例&#xff1a; 添加远程仓库&#xff1a; 在本地仓库中&#xff0c;使用以下命令添加第二个远程仓库&#xff1a; git remote add <远程仓库名> <远程仓库URL>例如&#xff1a; git remote add …

国内厉害的游戏开发公司有哪些?

中懿游游戏软件开发,中国有许多厉害的游戏开发公司&#xff0c;其中一些在国际上也享有盛誉。以下是一些在中国游戏开发领域中备受关注的公司&#xff1a; 腾讯游戏&#xff08;Tencent Games&#xff09;&#xff1a; 作为中国最大的互联网公司之一&#xff0c;腾讯的游戏分支…

视觉学习(6) —— 接收事件规则列表

条件&#xff1a; 两个地址 绑定地址1&#xff0c;条件是值为1才执行流程 &#xff08;1&#xff09;字节起止位置为 0-0 向100写入值1&#xff0c;流程次数是否会增加 答案是不会&#xff0c;字节0是在哪里 所以当写入值1 而因为字节起止位置是0 0 &#xff0c;所以只读字…

前端项目重构的深度思考和复盘

摘要&#xff1a; 项目重构是每一家稳定发展的互联企业的必经之路, 就像一个产品的诞生, 会经历产品试错和产品迭代 一样, 随着业务或新技术的不断发展, 已有架构已无法满足更多业务扩展的需求, 所以只有通过重构来让产品“进化”, 才能跟上飞速发展的时代浪潮. 技术因素 早期…

W5500-EVB-Pico评估版介绍

文章目录 1 概述2 板载资源2.1 硬件规格2.2 硬件规格2.3 工作条件 3 参考资料3.2 原理图3.3 尺寸图 (单位 : mm)3.4 参考例程 4 硬件协议栈优势 1 概述 W5500-EVB-Pico是基于树莓派RP2040和完全硬连线TCP/IP控制器W5500的微控制器开发板-基本上与树莓派Pico板相同&#xff0c;但…

【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现

在上一篇博客 【数字信号处理】线性调频Z(Chirp-Z,CZT)算法详解 已经详细介绍了CZT变换的应用背景和原理,先回顾一下: 回顾CZT算法 采用 FFT 算法可以很快计算出全部 N N N点 DFT 值,即Z变换 X ( z ) X(z) <

220v电源转换12v和24v用什么芯片

问&#xff1a;将220V电源转换为12V和24V - 使用什么芯片&#xff1f; 答&#xff1a;常用于将220V电源转换为12V和24V的芯片是AH8669和AH8665。 问&#xff1a;AH8669芯片提供了什么特点&#xff1f; 答&#xff1a;AH8669芯片适用于最大电流为700mA的应用。它内置了MOSFET…

01-黑马程序员大数据开发

一. Hadoop概述 1. 什么是大数据 &#xfeff;狭义上&#xff1a;对海量数据进行处理的软件技术体系&#xfeff;广义上&#xff1a;数字化、信息化时代的基础支撑&#xff0c;以数据为生活赋 2. 大数据的核心工作&#xff1a; &#xfeff;存储&#xff1a;妥善保存海量待…

5g消息-5G时代短信升级-富媒体智能交互-互联网新入口

在5G时代&#xff0c;运营商和各大手机厂商都在积极推进5G消息的商用&#xff0c;基于短信入口的富媒体消息应用在近两年得到快速发展&#xff0c;并在企业端形成了广泛应用。 作为5G时代的数字原生应用&#xff0c;5G消息支持用户通过文字、图片、音频、视频、位置等富媒体方式…

【算法题】链表重排(js)

力扣链接&#xff1a;https://leetcode.cn/problems/LGjMqU/description/ /*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode…

C++11(上):新特性讲解

C11新特性讲解 前言1.列表初始化1.1{ }初始化1.2std::initializer_list 2.类型推导2.1 auto2.2 typeid2.3 decltype 3.范围for4.STL的变化4.1新容器4.2容器的新方法 5.右值引用和移动语义5.1 左值引用和右值引用5.2 左值引用与右值引用比较5.3 右值引用的使用场景5.4 右值、左值…

浙江大唐乌沙山电厂选择ZStack Cloud打造新一代云基础设施

浙江大唐乌沙山电厂选择云轴科技ZStack Cloud云平台为其提供高性能、高可用的云主机、云存储和云网络&#xff0c;构建了简单、稳定、安全、高效的云基础设施&#xff1b;通过ZStackCloud为其提供可视化服务编排、多租户自服务等模块&#xff0c;帮助电厂提高IT资源利用率&…