总结:前端泛型在工作中的应用--TypeScript (实用,赞)

205 篇文章 0 订阅
175 篇文章 1 订阅

原文出处:https://www.jianshu.com/p/0affdae0c616

1、应用场景

前端需要对一个数据列表进行模型化(data-model),假设这个数据模型的类型是A,我希望将后端返回的json数组转化为类型A的列表即Array<A>(A[]),数据模型多种多样,其他页面的列表需要转化成B[],C[]等等,因此,我需要定义一个方法,这个方法能够将json数组(可视为Object array)转化成我想要的对象数组。对于这个问题我们可以用泛型来解决。

 

2、使用泛型创建工厂函数

在TypeScript使用泛型创建工厂函数时,需要引用构造函数的类类型。比如,

 

function create<T>(c: {new(): T; }): T {

    return new c();

}

因为泛型不知道T是啥东西,是不是类也不明白,所以需要引用构造函数的类类型。

 

利用泛型创建工厂函数实现我上面说的场景,代码示例如下:

 

function create<T>(c: {new(): T; },dataArr:Object[]): T[] {

    let dataModelArr: T[];

    dataArr.forEach(item=>{

        T.push(new T(item));

    })

    return dataModelArr;

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值