为嵌套的解构道具添加类型。打字稿反应终极版。 TS2339
Adding type to nested destructured props. Typescript React Redux. TS2339
mapStateToProps()
函数的解构属性(来自 redux 状态)是嵌套的,我如何将 HeaderStateMap
类型应用于它?我在编译时收到以下错误消息:
Property 'cart' does not exist on type 'HeaderStateMap'. TS2339
此外,我同时设置了 user:any
,但是如果我将类型更改为对象,TypeScript 会抱怨 Property 'user' does not exist on type '{}'
.
非常感谢任何帮助:)。
代码
type HeaderStateMap = {
user:any,
hidden:boolean
};
const mapStateToProps = ({ user: { user }, cart: { hidden } }:HeaderStateMap) => {
return {
user,
hidden
};
};
您可以嵌套类型:
interface User {
name: string;
};
type HeaderStateMap = {
user: User;
cart: {
hidden: boolean;
};
};
关于您遇到的错误,我认为您解构得太过分了,您假设您在用户对象中有用户:user.user
,尝试:
const mapStateToProps = ({ user, cart: { hidden } }:HeaderStateMap) =>
mapStateToProps()
函数的解构属性(来自 redux 状态)是嵌套的,我如何将 HeaderStateMap
类型应用于它?我在编译时收到以下错误消息:
Property 'cart' does not exist on type 'HeaderStateMap'. TS2339
此外,我同时设置了 user:any
,但是如果我将类型更改为对象,TypeScript 会抱怨 Property 'user' does not exist on type '{}'
.
非常感谢任何帮助:)。
代码
type HeaderStateMap = {
user:any,
hidden:boolean
};
const mapStateToProps = ({ user: { user }, cart: { hidden } }:HeaderStateMap) => {
return {
user,
hidden
};
};
您可以嵌套类型:
interface User {
name: string;
};
type HeaderStateMap = {
user: User;
cart: {
hidden: boolean;
};
};
关于您遇到的错误,我认为您解构得太过分了,您假设您在用户对象中有用户:user.user
,尝试:
const mapStateToProps = ({ user, cart: { hidden } }:HeaderStateMap) =>