在Typescript中映射时动态地将属性指定给类型化对象数组
这有一个错误:在Typescript中映射时动态地将属性指定给类型化对象数组,typescript,Typescript,这有一个错误: interface TypeA { prop1: string } interface TypeB extends TypeA { prop2: string } const ArrA: TypeA[] = [{ prop1: "foo" }] const ArrB: TypeB[] = ArrA.map(a => { a.prop2 = "bar" return a }) 这将获取错误:[ts]属性“prop2”在类型“TypeA”上不存在 我不想在接口
interface TypeA {
prop1: string
}
interface TypeB extends TypeA {
prop2: string
}
const ArrA: TypeA[] = [{ prop1: "foo" }]
const ArrB: TypeB[] = ArrA.map(a => {
a.prop2 = "bar"
return a
})
这将获取错误:[ts]属性“prop2”在类型“TypeA”上不存在
我不想在接口定义中使用任何函数。我在Stackoverflow上找不到任何其他解决方案,所以我在这里提出这个问题。我需要使用as关键字进行强制转换,并在TypeA上添加prop2作为可选参数:
这是我能找到的最好的解决方案,我希望有更多惯用的解决方案,1不涉及修改TypeA,2不涉及使用任何。谢谢。这个怎么样:
const ArrB: TypeB[] = ArrA.map(a => {
return {
...a,
prop2: "bar"
}
})
const ArrB: TypeB[] = ArrA.map(a => {
return {
...a,
prop2: "bar"
}
})