跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • React 大佬有没有, ts 有办法在编译阶段限制 react 子组件的参数类型吗
未分類
15 8 月 2020

React 大佬有没有, ts 有办法在编译阶段限制 react 子组件的参数类型吗

React 大佬有没有, ts 有办法在编译阶段限制 react 子组件的参数类型吗

資深大佬 : lblblong 7

比如有一个 Form 组件,它需要所有子组件都有 name 字段

<Form>     <Input name="username"></Input>     <Select name="sex"></Select>          // 这里写的时候会报错,因为没有 name 字段     <div></div> </Form> 

还有就是 form 可以限制子组件参数的类型,比如:

interface IUserSchema {     username: string     sex: 1 | 2 }  <Form schema={IUserSchema}>     <Input name="username"></Input>     <Select name="sex"></Select>          // 这里写的时候会报错,因为没有 age 字段     <Input name="age"></Input> </Form> 

注意,以上都需要在编译阶段就过不了

interface IProps {   children?: // 这里的类型需要怎么写才能实现上面的需求呢?  }  export const Form: FunctionComponent<IProps> = ({ children }) => {   return <form>{children}</form> } 

大佬有話說 (5)

  • 資深大佬 : sunjourney

    不能

  • 資深大佬 : shunia

    这样可以满足吗?

    ![]( https://tva1.sinaimg.cn/large/007S8ZIlly1gi369a0ffaj30pu0vswif.jpg)

  • 資深大佬 : swirling

    你需要一个好一点的 form 库来做这件事

  • 資深大佬 : KuroNekoFan

    那你可能需要把 jsx 用一组数据来表示,再把这组数据 map 成 jsx 了

  • 主 資深大佬 : lblblong

    @shunia 我测试没有用欸,不知道是不是 tsconfig 配置的问题
    https://img.vim-cn.com/d5/990a67b42d42bca2ad5fb80bf8a653cf734147.png

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具