typeScript接口

属性类接口

函数类型接口

可索引接口

类类型接口

接口扩展

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

接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。

接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。

typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。

接口:行为和动作的规范,对批量方法进行约束

属性接口

对json的约束

interface Person {name:string;age:number;sex?:string//可选属性
}
function printPerson (p:Person){if(p.sex){console.log(`${p.name}年龄${p.age} 性别${p.sex}`)}else{console.log(`${p.name}年龄${p.age}`)}
}
//写法一
printPerson({name:"fur",age:1})//fur年龄1
printPerson({name:"fur",age:1,sex:"girl"})//fur年龄1 性别girl
//写法二
var obj:Person = {name:"furfur",age:2,sex:"girl"
}
printPerson(obj)//furfur年龄2 性别girlrfur年龄2 性别girl

函数类型接口

对方法传入的参数 以及返回值进行约束,批量约束

interface encrypt{(key:string,value:string):string;
}
var md5:encrypt=function(key:string,value:string):string{//模拟操作return key+value;
}
console.log(md5('name','fur'));//namefur

可索引接口

数组、对象的约束

//对数组的约束
interface Arr  {[index:number]:string;
}
var arr1:Arr = ["1","2","3"]//对对象的约束
interface Obj {[index:string]:string
}
var arr2:Obj = {name:"fur",age:"1"}

类类型接口

对类的约束和抽象类抽象有点相似

class person {name:string; constructor(n:string){this.name = n}play():void{}
}
class man implements person{name: string;constructor(name:string){this.name = name;}play():void{console.log(`${this.name} lol`)}
}
class woman implements person{name: string;constructor(name:string){this.name = name;}play():void{console.log(`${this.name} shopping`)}
}
var m = new man("boy")
m.play()//boy lol
var w = new woman("girl")
w.play()//girlshopping

接口扩展

接口可以继承接口

例子:接口person继承接口Animal,man实现接口person同时也要实现Animal

class Animal{eat():void{}
}
class person extends Animal{play():void{}
}class man implements person{eat():void {console.log('吃粮食')}play():void{console.log('玩游戏')}
}

↓↓↓
typeScript系列学习文章目录

三分钟快速了解typeScript接口相关推荐

  1. 三分钟快速了解typeScript 类

    typeScript 类 类描述了所创建的对象共同的属性和方法. 类的定义 继承 类里面的修饰符 静态属性 静态方法 抽象类 继承 多态 类的定义 class person {name:string; ...

  2. 三分钟快速了解typeScript的装饰器

    ↓↓↓ typeScript系列学习文章目录 装饰器:装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为. 通俗的讲装饰器就是一个方法,可以注入到类.方法.属性参数 ...

  3. 三分钟快速了解typeScript数据类型

    前言: TypeScript 是由微软开发的一款开源的编程语言. TypeScript 是 Javascript 的超级,遵循最新的 ES6.ES5 规范 TypeScript 扩展了JavaScri ...

  4. 深入理解 Redis Template及4种序列化方式__spring boot整合redis实现RedisTemplate三分钟快速入门

    概述 使用Spring 提供的 Spring Data Redis 操作redis 必然要使用Spring提供的模板类 RedisTemplate, 今天我们好好的看看这个模板类 . RedisTem ...

  5. 云小课 | 一个三分钟快速定制OCR应用的神器,要不?

    摘要:ModelArts Pro提供了文字识别套件,基于丰富的文字识别算法和行业知识积累,帮助客户快速构建满足不同业务场景需求的文字识别服务.三分钟即可快速定制OCR服务,实现多种版式图像的文字信息结 ...

  6. 三分钟快速了解CSS Display的属性:Block,Inline,Inline-Block

    文章目录 三分钟快速了解CSS Display的属性:Block,Inline,Inline-Block Block Inline Inline-block Block,Inline,Inline-B ...

  7. 如何三分钟快速制作自定义ppt

    目录 利用ChatGPT+MindShow三分钟生成PPT 机器人 道合顺 莓用ai 百晓生 aichat 结合提词器以达到更好地提问效果: 更好地提问ChatGPT_常用prompt表_小黄同学LL ...

  8. linux国产操作系统下载网站,三分钟快速安装国产操作系统Ylmf OS

    雨林木风旗下国产操作系统Ylmf OS 4.0已经发布,(具体见http://www.linuxidc.com/Linux/2011-06/36739.htm)靓丽清爽的系统界面和丰富的系统应用立刻引 ...

  9. LP框架| 三分钟快速构建分布式微服务系统(一)

    开场章 LP框架极速搭建(用时3分钟) 公司来了新项目,我们如何快速大家一个成熟框架快速开发呢?是copy之前的项目做些更改还是重新一点点搭建?亦或者用公司的框架? 无论怎么做我们目的就是借鉴之前的开 ...

最新文章

  1. iMeta:德布鲁因图在微生物组研究中的应用(全文翻译,PPT,视频)
  2. 【嵌入式开发】C语言 指针数组 多维数组
  3. Python程序设计之如何设置统一编码格式
  4. 毕业论文选题三步搞定!
  5. linux怎么取消挂在u盘,linux下如何挂载U盘
  6. Android 通知栏消息
  7. 解决Hadoop时no namenode to stop异常或则 是 jps中没有namenode
  8. SpringAOP和AspectJ
  9. Linux运维之路怎么走?
  10. jsp实现简单购物车过程
  11. 【高端黑】软件工程师去理发店
  12. Delphi7微信、支付宝扫码支付源码
  13. ENVI背景值nodata或NAN解决方法/ArcGIS栅格影像背景颜色去除
  14. 团队管理之团队气氛篇
  15. 【老李的模拟赛】【#4】【2014-08-09】
  16. 求三角形 四边形面积(python)
  17. digstream.exe
  18. 将excel文件内容转为json格式字符串
  19. 新闻软文写作_软文写作网_产品软文写作_活动软文写作|Giiso智搜
  20. 查看自己电脑上的机器码教材

热门文章

  1. 高德地图的circle圈
  2. 自学Vue之路——Vue介绍及基本语法
  3. 打工人最怕听到的词是团建
  4. 数组可以存放实数吗?
  5. flasgger手写phpwind接口文档
  6. 模数转换器(ADC)的几种主要类型简介
  7. 为RMI实现类Jini的发现机制
  8. java怎么绘制魔方外观,AI简单绘制立体魔方教程
  9. 智能大屏和HTML5的小时代-杨勇强,乐视网CTO
  10. 虚拟资源素材商品交易平台网站源码