胖蔡说技术
随便扯扯

TypeScript如何给对象扩展方法

我们通过一个Leetcode的题目来了解一下如何在TypeScript中给对象扩展新的方法。

Arrary扩展一个分组方法groupBy

declare global {
    interface Array<T> {
        groupBy(fn: (item: T) => string): Record<string, T[]>
    }
}

Array.prototype.groupBy = function(fn) {
    const result: any = {}

    for(let i=0; i< this.length; i++) {
        const item = this[i]
        const key = fn(item)
        if(result[key]) result[key].push(item)
        else result[key] = [item]
    }
    return result
    
}

如上,通过declare 给Array声明一个groupBy方法,然后通过prototype实现该方法,即可实现对象的方法属性扩展。使用如下:

[1,2,3].groupBy(String) // {"1":[1],"2":[2],"3":[3]}
赞(0) 打赏
转载请附上原文出处链接:胖蔡叨叨叨 » TypeScript如何给对象扩展方法
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏