React 中的命名空间组件。如何使用类型检查

Namespace component in React. How to use type checking

React 中的命名空间组件。如何使用类型检查

代码:


const CustomCapsule = (props:CustomCapsuleTypes) =>{ 
        return( 
               <div direction={props.direction}>       
                   {props.children}
               </div> 
  )
}

CustomCapsule.Tab = ({title,active,onClick,tempKey}:TabItemProps) =>{
         return(<div>test</div>)
} 
    
 CustomCapsule.propTypes = {};   //   √

CustomCapsule.Tab.propTypes = {} //  ×.

错误:

属性 'propTypes' 在类型'({ title, active, onClick, tempKey }: TabItemProps) => Element' 上不存在。

有多种方法可以解决这个问题:

可以先设置道具类型,再分配子组件

const CustomCapsule = (props:CustomCapsuleTypes) => {}

const Tab = ({title,active,onClick,tempKey}:TabItemProps) => {} 
    
CustomCapsule.propTypes = {}

Tab.propTypes = {}

CustomCapsule.Tab = Tab;

或使用Object.assign:

const CustomCapsule = (props:CustomCapsuleTypes) => {}

CustomCapsule.Tab = Object.assign(
  ({title,active,onClick,tempKey}:TabItemProps) => {},
  { propTypes: {} }
)
    
CustomCapsule.propTypes = {}