繁体   English   中英

使用打字稿枚举并对期望字符串道具做出反应

[英]Using typescript enum and react to expect string prop

我正在尝试在 React 中严格键入一个 Button 组件。

我怎么能期待一个具有特定字符串值的道具?

我当前的尝试导致Type '"primary"' is not assignable to type 'ButtonLevel'

enum ButtonLevel {
  Primary = "primary",
  Secondary = "secondary",
  Warning = "warning"
}

interface IButtonProps {
  level: ButtonLevel,
  disabled?: boolean
}

function MyButton(props: IButtonProps) {
  return (<Button>ABC</Button>)
}

function test() {
  return (<MyButton level="primary" ></MyButton>)
}

对...只需输入管道分隔的值

interface IButtonProps {
  level: "primary" | "secondary" | "warning",
  disabled?: boolean
}

function test() {
  return (<MyButton level="ad" disabled >Continue</MyButton>)
}

然后警告组件使用者该值无效。

当您使用枚举时,您传递的是 ButtonLevel.Primary 而不是“primary”,枚举的重点是强类型并防止输入错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM