typescript 接口学习-接口继承与实现

export { };
// usb接口类型
type usbInterFaceType = "Type-C" | "Lightning" | "Micro USB";

// 数据线运行状态
enum DataLineWorkStatus { IN_SERVICE, LEAVE_UNUSED };

// 数据线状态,正常,部分异常,部分损坏,完全不可用
enum DataLineStatus { NORMAL, PARTIAL_ABNORMALITY, PARTIAL_DAMAGE, COMPLETELY_UNAVAILABLE };

// 数据线能力,充电,数据传输,扩展功能
interface IDataLineFunc {
    hasCharge: boolean;
    hasDataTransmission?: boolean;
    hasExtend?: boolean;
}
// 手机数据线接口
interface IDataLine extends IDataLineFunc {
    dataLineType: usbInterFaceType;
    status?: DataLineStatus;
    runStatus?: DataLineWorkStatus;
    onCharge?(batteryLevel: number): any;
    onDataTransmission?(): any;
    durationUsingTime?: number;
    isConnectComputer?(): void;
}

class DataLine implements IDataLine {
    public dataLineType;
    public status;
    public runStatus: DataLineWorkStatus;
    public hasCharge;
    public hasDataTransmission?;
    public hasExtend?;
    constructor(options: IDataLine) {
        this.dataLineType = (options as IDataLine).dataLineType;
        this.hasCharge = options.hasCharge || true;
        this.hasDataTransmission = options.hasDataTransmission || false;
        this.hasExtend = options.hasExtend || false;
        this.status = options.status || DataLineStatus.NORMAL;
        this.runStatus = options.runStatus || DataLineWorkStatus.LEAVE_UNUSED
    }
    // 监听充电,所有操作保证电源接通情况下的监测
    onCharge(batteryLevel: number): any {
        if (batteryLevel === 100) {
            return console.info('当前手机电池电量充足,请移除电源数据线');
        }
        // 先判断数据线是否正常
        if (this.status === DataLineStatus.COMPLETELY_UNAVAILABLE) {
            return new Error('当前数据线完全不可用,请更换数据线');
        }
        // 数据线部分损坏,用户自查是否充电正常
        if (this.status === DataLineStatus.PARTIAL_DAMAGE) {
            return console.info('数据线部分损坏,用户自查是否充电正常');
        }
        // 数据线部分异常,用户自查是否充电正常
        if (this.status === DataLineStatus.PARTIAL_ABNORMALITY) {
            return console.info('数据线部分异常,用户自查是否充电正常');
        }
        // 如果正常,充电异常,请确认是否数据线连接状态ok  
        if (this.status === DataLineStatus.NORMAL) {
            this.runStatus = DataLineWorkStatus.IN_SERVICE;
            return console.info('当前运行状态良好,持续充电中');
        }
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值