
Java
使用打字稿声明 React.ComponentType

typescript
来声明组件的类型。React.ComponentType
是一个泛型类型,它接受一个参数 P,表示组件的 props 类型。我们可以将 React.ComponentType
用作组件的类型注解,以指定组件的 props 类型。
下面是一个使用打字稿声明 React.ComponentType的示例:
typescriptimport React from 'react';import { Button } from '@material-ui/core';type EnhancedButtonProps = { color: string;}const withEnhancement = <P extends EnhancedButtonProps>( Component: React.ComponentType<P>) => { const EnhancedComponent: React.FC<P> = (props) => { return ( <Component {...props} /> ); } return EnhancedComponent;}const ButtonWithEnhancement = withEnhancement(Button);const App: React.FC = () => { return ( <div> <ButtonWithEnhancement color="primary"> Click me </ButtonWithEnhancement> </div> );}export default App;在上面的示例中,我们定义了一个名为 withEnhancement 的高阶组件。它接受一个组件作为参数,并返回一个增强后的组件。我们使用了泛型类型 P extends EnhancedButtonProps 来指定被增强组件的 props 类型。在 EnhancedComponent 中,我们使用 React.FC来声明组件的类型注解。
在 App 组件中,我们使用了被增强的 Button 组件 ButtonWithEnhancement。我们可以为 ButtonWithEnhancement 组件传递 color 属性,并在应用中渲染出一个带有增强功能的按钮。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号