构造函数JSON参数的流类型

时间:2019-06-07 01:19:05

标签: flowtype

在类定义中使用流程,我需要键入所有类的属性:

export default class Product {
  id: number;
  name: string;
  slug: string;
  featured: boolean;
  description: string;
  ...etc...
}

当我编写构造函数时,我希望它接受一个形状与我刚定义的类型相同的对象。如何键入该参数?

我可以明确地做到这一点:

constructor(json: {
    id: number,
    name: string,
    slug: string,
    featured: boolean,
    description: string,
    ...etc...
  }) {
    this.id = json.id
    this.name = json.name
    ...etc... 
  }

但这似乎完全荒谬,并且与DRY明显相反。 (说实话,在构造器方法中命名每个属性 总是让我感到很干燥)

我不能只是做(json: Product),因为它不是Product的实例,而是具有相同属性的对象。

正确的方法是什么?

0 个答案:

没有答案