我有一个对象“ x”,当我想使用Object.values时,它具有两个属性man,woman和两个数组,我得到一个错误。我有两个问题,X应该是什么类型以及如何解决错误。 .. Object.values(x)。code
interface DD {
y:string,
u:string
}
const x = {
man:[{
y:'y',
u:'u'
}],
woman:[{
y:'y',
u:'u'
}]
}
function y (){
return [].concat(...Object.values(x));
}
console.log(y())
答案 0 :(得分:0)
您尝试使用无类型的数组并与之连接,TypeScript不允许这样做,因为数组项类型不兼容。您可以输入空数组,然后将其正常运行,例如:
type Person = { y: string, u: string };
//...
function Y() {
return ([] as Person[]).concat(...Object.values(x));
}
如果在编译器选项中定义了lib
,则"es2017"
需要"es2017.object"
或Object.values
。
如果您要针对支持它的JS版本,也可以改用Array.prototype.flat
(lib:esnext
):
function Y() {
return Object.values(x).flat();
}