从打字稿中的对象中的数据创建一个 class 实例
Create a class instance from data in an object in typescript
我在 typescript 网站上有一个 full example。基本上,这个函数的最后一行不起作用
export function getInvoice(number: number): Invoice | undefined {
let jsonObj = invoices.find(
(invoice) => invoice.number === number
);
if(!jsonObj)
return jsonObj;
jsonObj = Object.assign(Invoice.prototype, jsonObj);
return jsonObj;
}
发票是包含发票数据的对象数组。取回对象后,我试图将其转换为类型化的 Invoice 对象以供使用。 return jsonObj
由于某种原因出错,错误
TS2739: Type '{ name: string; number: number; amount: string; due: string; }' is missing the following properties from type 'Invoice': _name, _number, _amount, _due
您示例中的代码滥用了 Object.assign()
:如果您想要 Invoice
class 的实例,则创建一个:
export function getInvoice(targetNumber: number): Invoice | undefined {
const o = invoices.find(({number}) => number === targetNumber);
if(!o) return undefined;
const {amount, due, name, number} = o;
return new Invoice(name, number, amount, due);
}
我在 typescript 网站上有一个 full example。基本上,这个函数的最后一行不起作用
export function getInvoice(number: number): Invoice | undefined {
let jsonObj = invoices.find(
(invoice) => invoice.number === number
);
if(!jsonObj)
return jsonObj;
jsonObj = Object.assign(Invoice.prototype, jsonObj);
return jsonObj;
}
发票是包含发票数据的对象数组。取回对象后,我试图将其转换为类型化的 Invoice 对象以供使用。 return jsonObj
由于某种原因出错,错误
TS2739: Type '{ name: string; number: number; amount: string; due: string; }' is missing the following properties from type 'Invoice': _name, _number, _amount, _due
您示例中的代码滥用了 Object.assign()
:如果您想要 Invoice
class 的实例,则创建一个:
export function getInvoice(targetNumber: number): Invoice | undefined {
const o = invoices.find(({number}) => number === targetNumber);
if(!o) return undefined;
const {amount, due, name, number} = o;
return new Invoice(name, number, amount, due);
}