TypeScript教程(九)接口约束类

来源:程序思维浏览:2052次
TypeScript教程接口约束类
在面向对象编程中,接口是一种规范的定义,它定义了行为和动作规范,在开发大型项目时通常采用面向对象的编程思路,那么就要用到接口来约束类,实现高内聚低耦合的代码规范。接下来看一下代码示例:

interface ISuperMan{
    age:number;
    name:string;
    fly();
}

class Man implements ISuperMan{
         age:number=30;
    name:string="超人";
    eat(){
        console.log(this.name+"在飞")
    }
}

使用implements关键字可以让类继承接口,继承后表示约束了这个类,那么这个类必须要实现这个接口的所有成员属性和成员方法。在ISuperMan接口中age和name表示类中的成员属性,fly()表示成员方法,在接口中定义成员方法有几种形式均可使用:
  • fly()
  • fly:Function
  • fly:Object
  • fly:()=>void
其中最常用的是fly:Function这样的形式定义,当然用哪种形式取决于自己的习惯,关键在于读别人代码时可以读懂就够了。

一个类也可以继承多个接口,代码示例如下:

interface ISuperMan{
    age:number;
    name:string;
    fly();
}
interface IIronMan{
    eat:Function
}
interface ISpiderMan{
    run:()=>void
}
class Man implements ISuperMan,IIronMan,ISpiderMan{
     age:number=30;
    name:string;
    fly(){
        console.log(this.name+"在飞");
    }
    eat(){
     console.log(this.name+"在吃饭");
    }
    run(){
        console.log(this.name+"在跑");
    }
}
let man=new Man();
man.name="超人";
man.fly();

man.name="钢铁侠";
man.eat();

man.name="蜘蛛侠";
man.run();

注意代码加粗的地方,在implement关键字后面使用逗号作为分隔符可以继承多个接口,继承后该类必须实现所有接口内部的属性和方法。
一个接口也可以继承多个接口,看一下代码示例:

interface ISuperMan{
    age:number;
    name:string;
    fly();
}
interface IIronMan{
    eat:Function
}
interface ISpiderMan{
    run:()=>void
}
//一个接口也可以继承多个接口
interface IMan extends ISuperMan,IIronMan,ISpiderMan{}

class Man implements IMan{
age:number=30;
    name:string;
    fly(){
        console.log(this.name+"在飞");
    }
    eat(){
     console.log(this.name+"在吃饭");
    }
    run(){
        console.log(this.name+"在跑");
    }
}
let man=new Man();
man.name="超人";
man.fly();

man.name="钢铁侠";
man.eat();

man.name="蜘蛛侠";
man.run();

注意上面代码加粗的地方,定义了一个IMan接口使用extends关键字继承了ISuperMan,IIronMan,ISpiderMan接口,这个IMan拥有了父接口定义的规范,使用Man类继承IMan接口这个类必须要实现接口中所有的属性和方法。
精品好课
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
收藏
扫一扫关注我们