TS--从0开始 (三、接口深入-2)

使用接口描述函数

不使用接口时 无法复用

function fun1(x: number, y: number): number {
    return x + y
}
function fun2(x: number, y: number): number {
    return x + y
}
//无法复用

使用后

interface Func {
    (x: number, y: number): number
}

// 使用接口描述函数Func可复用

let fun1: Func = function (x: number, y: number): number {
    return x + y
}
let fun2: Func = function (x: number, y: number): number {
    return x + y
}

示例


interface Func {
    (el: MouseEvent): void
}

// MouseEvent  鼠标事件


let temple = function (a: HTMLElement, b: string, c: Func): number {
    return 1
}

let ele = document.getElementsByTagName('div')[0]

temple(ele, 'click', (el) => { })

接口合并

当两个接口重名时 不会覆盖 而是合并

interface Box {
    num1: number,
    num2: number
}

interface Box {
    str1: string
}

let obj: Box = {
    num1: 1,
    num2: 2,
    str1: '学习如逆水行舟,不进则退'
}
  • 当为非函数类型时,要求属性值同名的必须类型相同
interface Box {
    num1: number,
    num2: number,
    name: string
}

interface Box {
    str1: string
    name: string
}

let obj: Box = {
    num1: 1,
    num2: 2,
    str1: '学习如逆水行舟,不进则退',
    name: 'meimei'
}
  • 当为函数时则采用重载
interface Box {
    num1: number,
    num2: number,
    fun(x: number): void
}

interface Box {
    str1: string
    fun(x: number): string
}

let obj: Box = {
    num1: 1,
    num2: 2,
    str1: '学习如逆水行舟,不进则退',
    fun: function (x: any): any {

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值