我希望您能够修改对象填充属性的方式。
目前我的代码是:
目前我的代码是:
export interface INewOffer {
employment?: IEmployment;
heightWeight?: IHeightWeight;
}
export interface IEmployment{
trainings?: string;
activeEmployment?: string;
wage?: string;
}
创建一个对象的 And 函数看起来像这样:
private dataGenerator(newCustomer: INewCustomer): INewOffer {
const data: INewOffer = {};
if (NullCheck.isDefinedOrNonNull(newCustomer.age)) {
data.employment = {
trainings: newCustomer.trainings,
activeEmployment: newCustomer.activeEmployment,
wage: newCustomer.wage,
};
} else {
data.employment = {
wage: newCustomer.wage,
};
}
data.heightWeight = {
height: '180',
weight: '75',
};
return data;
}
我曾试图修改我的代码为
private dataGenerator(newCustomer: INewCustomer): INewOffer {
const data: INewOffer = {};
if (NullCheck.isDefinedOrNonNull(newCustomer.age)) {
data.employment.trainings = newCustomer.trainings;
data.employment.activeEmployment = newCustomer.activeEmployment;
data.employment.wage = newCustomer.wage
} else {
data.employment.wage = newCustomer.wage
}
data.heightWeight.height = '180';
data.heightWeight.weight = '75';
return data;
}
当我将鼠标悬停在以下内容时:
data.
显示为const data: INewOffer
employment.
=>(property) INewOffer.employment?: IEmployment
wage
=>(property) IEmployment.wage?: string
但是,当我运行测试时,出现了错误:
E/launcher - Error: TypeError: Cannot set property 'wage' of undefined
我已经尝试像这样设置:
data.employment!.wage = newCustomer.wage
但它并不起作用。后来我发现typescript不支持Optional Chaining。
我的问题是,为什么IDE没有显示错误?还是我需要做其他的事情来使它起作用?