继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第1天 接口、接口高级技巧

洋溢1310659
关注TA
已关注
手记 26
粉丝 2
获赞 4

课程名称GO开发工程师

课程章节:第6章:TS之面向对象:接口、类、泛型

课程讲师ccmouse

课程内容

一. 接口

接口:描述一个类型

示例错误:报错提示缺少某个字段 -> ts中的接口不需要实现,只需要符合interface描述的类型就行
图片描述

示例错误:只是描述 emp3 是Employee类型,并没有给定具体的值

图片描述

接口语法:
interface大多数情况下是用于定义字段,定义方法时考虑使用类定义或者在对象作为参数传递时会用到函数类型的字段

interface Employee {
    readonly firstname: string, // 只读字段
    name: String, // 接口里加, ; 或者不加都可以
    salary: number,
    bonus?: number, // 可选参数
    read
    updateBonuns(p: number): void // 方法
}

图片描述

二. 接口高级技巧

示例错误:name是可选字段,值有可能为空-> 用?链式调用可选字段
图片描述
代码示例:

interface Employee {
    salary: number,
    name?: {
        first: string,
        last: string,
    },
    bonus?: number,
}

function hasBadName_Error(e: Employee) {
    return e.name.first.startsWith('AAA') // 报错
}
function hasBadName_Correct(e: Employee) {
    return e?.name?.first.startsWith('AAA') // 可选
}
function hasBadName_Force(e: Employee) {
    return e!.name!.first.startsWith('AAA') // 一定有值 (非空断言)
}

接口的拓展:关键字extends
图片描述

类型断言:as 关键字
图片描述

//判断是否是类型WxButton
function isButton(e:WxButton | WxImage): e is WxButton{
    //判断类型,最终还是通过属性
    return (e as WxButton).onClick !== undefined
}

课程收获

interface:类型描述
设计接口应当尽量规范化、简单化,避免返回多种类型增加逻辑复杂度(类型并、类型判断、类型断)

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP