在类定义中使用流程,我需要键入所有类的属性:
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
的实例,而是具有相同属性的对象。
正确的方法是什么?