我有一只猫可以使用js,但不能在打字稿中使用,但出现错误:
Argument of type '{y: string; u: string; } [] 'is not assignable to parameter of type' ConcatArray <never>
我了解到问题可能出在Object.values()
,文章说我也更改了我所做的配置tsconfig.json
,但是错误没有消失。 Object.values error Vido
代码
const x = {
man: [
{
y: "y",
u: "u"
}
],
woman: [
{
y: "y",
u: "u"
}
]
};
function Y() {
return ([].concat(...Object.values(x)));
}
console.log(Y());
tsconfig.json
{
"compilerOptions": {
"target": "es2017",
"lib": [
"es2017",
"dom",
"dom.iterable",
"esnext"
],
"noImplicitAny": false,
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"forceConsistentCasingInFileNames": true
},
"include": [
"src"
]
}
答案 0 :(得分:0)
您遇到的问题是数组[]
的类型为never[]
。如果将[]
强制转换为unknown[]
,则可以使用。
const x = {
man: [
{
y: "y",
u: "u"
}
],
woman: [
{
y: "y",
u: "u"
}
]
};
function Y() {
return (([] as unknown[]).concat(...Object.values(x)));
}
console.log(Y());
编辑:
我实际上建议您使用return Object.values(x).flat();
代替concat。它将做完全相同的事情,并且您不需要强制转换数组。