接口(interface)的定义:
1.对象的类型c 结构体封装了多个字段 2.行为的契约java封装抽象的行为(方法或函数的声明)
USB接口:
interface USB{
/**
* 插入
*/
plug():string;
pull():string;
}
Mouse类:
class Mouse implements USB {
pull(): string {
return "鼠标已断开";
}
plug(): string {
return "鼠标已连接";
} }
Keyboard类:
class Keyboard implements USB {pull(): string {
return "键盘已断开";
}
plug(): string {
return "键盘已连接";
} }
PC类:
class PC {// 属性依赖
// 参数依赖
// 依赖接口// 多个USB接口
usbs:Array;
constructor() {
this.usbs=new Array();
}/**
* 接入一个usb设备
* @param usb
*/plugUSB(usb:USB){
if(usb){
//usb.plug();
console.log( usb.plug());
this.usbs.push(usb);
}
}shutdown():void{
console.log(`PC shotdown`);
//关机时,所有usb设备自动断开
for (const u of this.usbs) {
console.log( u.pull());
}
this.usbs.splice(0);
} }
Superman类:
class SuperMan implements USB {
plug(): string {
return "超人连接";
}
pull(): string {
return "超人离开" ;
} }
测试代码:
let pc=new PC();
pc.plugUSB(new Mouse());
pc.plugUSB(new Keyboard());
pc.plugUSB(new SuperMan());
pc.shutdown();
输出结果:
键盘已连接
超人连接
PC shotdown
鼠标已断开
键盘已断开
超人离开
【TypeScript中的接口】
推荐阅读
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- TypeScript基础学习(4): 类
- 如何不使用tsc编译来执行TypeScript代码
- TypeScript基础学习(3): 函数
- TypeScript基本使用
- web|TypeScript 新版网站上线(带来了新的导航机制)
- web|TypeScript 4.0正式发布!现在是开始使用它的最佳时机
- typescript|ES新特性与TypeScript、JS性能优化
- TS实战碰到的问题及解决办法(连载中)