如何使用默认值定义不平坦的类变量

时间:2017-09-08 14:07:49

标签: typescript

定义像这样的平面类可以正常工作:



class Test {
 company_name: string = "";
 company_id: number = 0;
 company_website: string = "";
}




如果我let product = new Test()这一切都按预期工作,product也会加载默认值。

我怎样才能实现同样的目标,但是对于不平坦的类变量?理想情况下它应该像这个例子中那样工作(失败):



class Test {
  companyData: {
    company_name: string = "";
    company_id: number = 0;
    company_website: string = "";
  }
  productData: {
    category_id: number = 0;
    product_name: string = "";
    price: {
      price_in: number = 0;
      price_out: number = 0;
    }
  }
}




VSCode中的错误是A type literal property cannot have an initializer。在我的用例中,设置所有变量非常重要,我可以为它们分配默认值。

1 个答案:

答案 0 :(得分:2)

您正在定义Types,而不是设置values的{​​{1}}(或介于两者之间,语法无论如何都是错误的。)

请改为尝试:

properties

如果你想要它们class Test { public companyData = { company_name: '', company_id: 0, company_website: '' }; public productData = { category_id: 0, product_name: '', price: { price_in: 0, price_out: 0 } }; } (你应该),请使用接口:

Typed