【发布时间】:2019-06-21 07:22:56
【问题描述】:
我有一张发票可以在新/已开票状态。我有一个接受新发票并返回发票发票的 doInvoicing 方法。但我无法在我的方法中更改发票的状态,因为它已绑定到新状态。
目前我只能考虑将输入发票转换为 Invoiced。但是,这会在类型检查中留下一个漏洞,因为它无法验证我是否将发票状态设置为已开票。我认为此操作所需的操作必须结合转换/设置值的步骤(如果可能)。
doInvoicing(invoice: Invoice & { state: invoiceState.New }):
Invoice & { state: invoiceState.Invoiced } {
var invoiced = invoice as Invoice & { state: invoiceState.Invoiced };
invoiced.state = invoiceState.Invoiced; // This MUST happen, but unverified
return invoiced;
}
enum invoiceState {
New, Invoiced
}
【问题讨论】:
标签: typescript function types parameters restriction