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

原文出处: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;

}

猜你喜欢

转载自blog.csdn.net/chelen_jak/article/details/87362611