В этом предложении присваивания:
this.products = products.map(p => ({
...(p.payload.val() as {})
}))
... вы используете p.payload.val()
как тип {}
, а также распространяете это в пустой объект (чтобы его клонировать?), Который все еще сохраняет его тип как {}
. Следовательно, products.map(...)
имеет тип {}[]
, он же Array<{}>
. Поскольку this.products
является Product[]
, тип несовместим.
Если p.payload.val()
уже имеет тип Product
, то нет необходимости разыгрывать что-либо:
this.products = products.map(p => p.payload.val())
// or if you need that cloning stuff...
this.products = products.map(p => ({ ...p.payload.val() }))
Если это не типа Product
, приведите к Product
вместо {}
:
this.products = products.map(p => p.payload.val() as Product)
// or if cloning...
this.products = products.map(p => {
return { ...p.payload.val() } as Product
});