2 回答
TA贡献1865条经验 获得超7个赞
这是 TypeScript 编译器错误,而不是 JavaScript 运行时错误。a 的形状newItem与原始 相同item,并且原始item声音具有必需的skills和achievements属性,因此delete不允许通过删除它们(因为这样现有对象将与输入的形状不匹配)。
出于类似的原因,以下内容也是不允许的:
const obj = {
foo: 'val1',
bar: 'val2',
};
delete obj.foo;
(因为 的类型,如果被删除,obj那{ foo: string; bar: string; }将是不正确的)foo
您可以改为解构不需要的属性,并使用 rest 语法来收集新对象的属性:
let skillsArray = this.state.experiences.map((item) => {
const { skills, achievements, ...newItem } = item;
return newItem;
})
TA贡献1829条经验 获得超13个赞
而不是在回调函数中delete使用and 只返回所需的键map
let experience = [{
organisation: "",
id: "",
from: "",
to: "",
skills: [],
achievements: 0,
},
{
organisationName: "",
id: "",
from: "",
to: "",
skills: [],
achievements: 0,
}
];
let newExp = experience.map((item) => {
return {
organisationName: item.organisationName,
id: item.id,
from: item.from,
to: item.to,
}
});
console.log(newExp)
添加回答
举报