![](/img/trans.png)
[英]React TypeScript: Type 'string[]' is not assignable to type 'never[]'
[英]Type 'string' is not assignable to type 'never' and Type 'unknown' is not assignable to type 'never' error in react typescript
我在 React Typescript 中有一个 function
const filter = (data: any) => {
if (Array.isArray(data)) {
const temp = data.reduce((r, v) => {
v = filter(v);
if (v !== "") r.push(v);
return r;
}, []);
return temp.length ? temp : "";
}
if (data && typeof data === "object") {
const temp = Object.entries(data).reduce((r, [k, v]) => {
v = filter(v);
if (v !== "") r.push([k, v]);
return r;
}, []);
return temp.length ? Object.fromEntries(temp) : "";
}
return data;
};
但这里符合if (v.== "") r,push([k; v]);
我收到错误Type 'string' is not assignable to type 'never'.ts(2322)
和Type 'unknown' is not assignable to type 'never'.ts(2322)
分别分配给k
和v
中的类型'从不'.ts(2322),但我没有得到解决这些问题的任何解决方案。 我是 Typescript 的新手。
Typescript 无法在您的 reduce 中r
的正确类型,因此假定它是never[]
。 您可以通过自己指定正确的类型来解决此问题。
const filter = (data: any) => {
if (Array.isArray(data)) {
const temp = data.reduce((r, v) => {
v = filter(v);
if (v !== "") r.push(v);
return r;
}, []);
return temp.length ? temp : "";
}
if (data && typeof data === "object") {
const temp = Object.entries(data).reduce((r, [k, v]) => {
v = filter(v);
if (v !== "") r.push([k, v]);
return r;
}, [] as [string, unknown][]);
return temp.length ? Object.fromEntries(temp) : "";
}
return data;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.