【发布时间】:2022-01-10 18:26:07
【问题描述】:
我有两个道具showAccountName 和accountType。
仅当showAccountName 为真时,才需要accountType。当 showAccountName 为 false 时,accountType 不是必需的。
所以,我使用了类型联合 -
type AccountProps =
| { showAccountName?: false; accountType: never; }
| { showAccountName?: true; accountType: string; }
并尝试在类组件中扩展这些道具
class UserAccount extends React.PureComponent<AccountProps>
{ .... }
但我无法在 UserAccount 中使用 this.props 访问 showAccountName 或 accountType。知道我在这里做错了什么吗?或者有没有其他方法可以根据另一个可选道具强制使用一个道具? (不使用类型)
我是打字稿的新手,非常感谢任何帮助!
【问题讨论】:
-
“无法访问”是什么意思?您是否收到特定的错误消息?当我尝试您的代码时,它似乎工作正常:tsplay.dev/NnXxVW
-
为什么让它们成为可选的?见this例子
标签: reactjs typescript types react-props extends