在Java中,大家都已经很熟悉Gson这样的json自动解析工具了,而在TypeScript中,因为没有足够良好的泛型支持,目前还实现不了像Gson那样可以支持泛型的完善的解析方式。不过今天发现一款工具,可以将json转换到具体的指定类型。
能省去不少手写的麻烦,只是目前还不支持对泛型进行解析。
传送门:https://github.com/typestack/class-transformer
下面这种方式完全采用原生的方式,无需引入类库:
利用TypeScript的“鸭子辨型法”,将要的数据结构定义为interface,然后采取装饰模式,new出来另一个对象,对结果进行封装,在这个真实对象上,对泛型进行操作。
/**
* 网络请求结果基类
*/
export class BaseRequestResult<T> {
public static STATUS_CODE_ERROR: number = -1;
public static STATUS_CODE_DEFAULT: number = 0;
data: T | null = null;
code: number = BaseRequestResult.STATUS_CODE_DEFAULT;
constructor(private success: boolean, public statusCode: number, public msg?: string) { }
public isSuccess(): boolean {
return this.success;
}
}
子类如有拓展方法的需要,则可以继承BaseRequestResult,进行相应的拓展。