你如何在打字稿中初始化无构造类的对象
export class C1 {
prop1: string,
prop2: string
}
在我的另一堂课中:
const obj = new C1 { prop1: 'aaa', prop2: 'bbb' }; // error on this line ( 'expecting a comma')
另外,如果我使用'let'而不是'const',我会得到一个tslint错误:标识符obj永远不会被重新分配,使用const而不是let。在这种情况下,这是否真的需要使用const?
答案 0 :(得分:0)
要从 constructorless 类初始化对象,需要逐个为属性赋值。
weight = OrderLine.objects.filter(product=OuterRef('pk'), order__date__gte=date).order_by().values('product')
sum_weight = weight.annotate(total=Sum('weight')).values('total')
templates = Template.objects.filter(product=OuterRef('pk')).order_by().values('product')
count_templates = templates.annotate(count=Count('*')).values('count')
query = query.annotate(weight_sold=Subquery(sum_weight, output_field=DecimalField()),
template_count=Subquery(count_templates))
实际上我不知道为什么你需要一个 constructerless 类。更多,您可以使用像
这样的构造函数缩短代码的语法const obj = new C1();
obj.prop1 = '1';
obj.prop2 = '2';
并使用构造函数
创建一个对象export class C1 {
constructor(public prop1: string, public prop2: string) { }
}