typeScript入门(三)接口

接口我感觉是很常用的一块

定义标准:

接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。 typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。

1)属性类接口

举个例子分析下

interface FullName{

firstName:string;

secondName?:string;

}

function printName(name:FullName){

console.log(name.firstName+‘--‘+name.secondName);

}

var obj={

age:20,

firstName:‘张‘,

secondName:‘三‘

};

printName(obj);

注意点如下

一。定义接口用分号(;)隔开。

二。接口内的属性可以用?来表示这个接口可以不传

三。当函数调用时,参数不可直接写用对象,ts会报错有未知属性,需像上文一样先赋值给一个值,函数再调用的时候传这个值。

2)函数类接口

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

interface encrypt{

(key:string,value:string):string;

}

var md5:encrypt=function(key:string,value:string):string{

return key+‘----‘+value;

}

console.log(md5(‘name‘,‘zhangsan‘));

3)可索引接口

对数组的约束

interface UserArr{

[index:number]:string

}

对对象的约束

interface UserObj{

[index:string]:string

}

其实可以看出来区别就是数组下标时number,但是对象下标就是string。

4)类类型接口

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

interface Animal{

name:string;

eat(str:string):void;

}

class Dog implements Animal{

name:string;

constructor(name:string){

this.name=name;

}

eat(){

console.log(this.name+‘吃粮食‘)

}

}

注意点如下:

一。在interface内的所有属性或者方法,必须在实现的类中有。

二。interface是类实现接口的方法。

5)接口的拓展

接口可以继承接口,用extends实现。

一个类既可以继承(extends)一个类,也可以顺便实现(interface)一个接口。

原文地址:https://www.cnblogs.com/tzzf/p/9762754.html

时间: 2024-10-08 21:47:33

typeScript入门(三)接口的相关文章

TypeScript入门三:TypeScript函数类型

TypeScript函数类型 TypeScript函数的参数 TypeScript函数的this与箭头函数 TypeScript函数重载 一.TypeScript函数类型 在上一篇博客中已经对声明TypeScript类型变量已经做了初步的解析,这里先回顾以下: 1 //声明函数 2 function add1(x:number,y:number):number{ 3 return x+y; 4 } 5 6 let add2 = function(x:number,y:number):number

TypeScript入门五:TypeScript的接口

TypeScript接口的基本使用 TypeScript函数类型接口 TypeScript可索引类型接口 TypeScript类类型接口 TypeScript接口与继承 一.TypeScript接口的基本使用 1.1定义TypeScript接口的指令(interface) 接口让我们想到的第一个短语就是(API).比如日常我们所说的调用某某程序的API一般都是跨应用的接口,如别的网站的或者APP的接口:还有我们每天都是用的编程语言的指令和内置的方法及属性,这些可以叫做编程语言的接口:还有令我们既

【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

前言 本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo.服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了.同时用MINA2和Netty4分别实现服务端的目的,是因为很多人都在纠结到底是用MINA还是Netty来实现高并发的Java网络通信服务端,在此干脆两个都实现了,就看你怎么选择了,够吊吧. NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,M

Netty4入门三:Netty概要讲解,全面了解Netty,做到胸有成竹

     读完这一章,我们基本上可以了解到Netty所有重要的组件,对Netty有一个全面的认识,这对下一步深入学习Netty是十分重要的,而学完这一章,我们其实已经可以用Netty解决一些常规的问题了. 一.先纵览一下Netty,看看Netty都有哪些组件? 为了更好的理解和进一步深入Netty,我们先总体认识一下Netty用到的组件及它们在整个Netty架构中是怎么协调工作的.Netty应用中必不可少的组件: Bootstrap or ServerBootstrap EventLoop Ev

CUDA C编程入门-编程接口(3.4)计算模型

在Windows Server 2008和后来的版本或者Linux上运行的Tesla解决方案,能通过NVIDIA系统管理界面(nvidia-smi,作为发行的驱动的一个工具)设置系统中的任何设备运行于下面三种计算模式中的一种 : 默认计算模式:多主机线程能同时使用设备(使用运行时API,在这个设备上调用cudaSetDevice(),或者使用驱动API,使当前的上下文与设备关联). 处理器独占的计算模式:仅创建一个跨系统所有处理器CUDA上下文,同时对于一个处理器的尽可能多的线程. 处理器和线程

TypeScript入门指南(JavaScript的超集)

TypeScript入门指南(JavaScript的超集) 你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析,显式接口.TypeScript是微软的开源项目,它是由C#之父Anders Hejlsberg发起的. 为什么会有 TypeScript? JavaScript 只是一个脚本语言,并非真正设计用于开发大型 Web 应用,JavaScript 没有提供类和模块等概念,对于一个真正的应用开发,TypeSc

探索typescript的必经之路-----接口(interface)

TypeScript定义接口熟悉编程语言的同学都知道,接口(interface)的重要性不言而喻.?很多内容都会运用到接口.typescrip中的接口类似于java,同时还增加了更灵活的接口类型,包括属性.函数.可索引和类等,要想对typescript的操作进行更深入的了解,接口是必须接触到的.今天我就为大家分享一下,如何使用接口. 一. 为什么要使用接口1.1. JavaScript存在的问题我们在JavaScript中定义一个函数,用于获取一个用户的姓名和年龄的字符串:const getUs

Flex入门(三)——微架构之Cairngorm

大家都知道我们在开发后台的时候,都会使用MVC,三层等分层架构,使后台代码达到职责更为分明单一,高内聚低耦合,例如,Dao层只是进行和数据库打交道,负责处理数据:Service(B层)只是进行逻辑判断处理,而Action则进行后台和前台页面的交互等.从而使程序更加容易管理,更加灵活,更加容易扩展,更加容易维护.也就是大家比较熟悉的Struts(SpringMVC)+Spring+Hibernate(Mybatis)等. 而作为前台Flex处理,也提供了类似的处理功能,想要达到的效果,也是代码分层

Swift语法基础入门三(函数, 闭包)

Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 { 函数实现部分 } 没有参数没有返回值 可以写为 ->Void 可以写为 ->() 可以省略 Void.它其实是一个空的元组(tuple),没有任何元素,可以写成() func say() -> V

Thinkphp入门三—框架模板、变量(47)

原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display()   调用当前操作名称的模板 display(‘名字’)  调用指定名字的模板文件 控制器调用模板四种方式: [在控制器给模板传递变量] 在smarty里边给模板传递变量信息 $smarty -> assign(变量名称,值); 在tp框架里边同样适用assign()给模板传递变量信息 ThinkPHP的模板引擎的左右标记: ThinkPHP/Lib/ Behavior/ ParseTemplateBe