To add the className
prop to a component with React and TypeScript, we can add the React.HTMLAttributes
type into our prop type.
For instance, we write
class MyComponent extends React.Component<
MyProps & React.HTMLAttributes<HTMLDivElement>,
{}
> {
render() {
return <div className={this.props.className}>My Div</div>;
}
}
to set the prop type of MyComponent
to MyProps & React.HTMLAttributes<HTMLDivElement>
.
MyProps & React.HTMLAttributes<HTMLDivElement>
is an intersection of the MyProps
and React.HTMLAttributes<HTMLDivElement>
types.
So the props that are in both types would be allowed in the combined types.
React.HTMLAttributes<HTMLDivElement>
has the valid attributes of a div element as its properties, which includes className
.
Conclusion
To add the className
prop to a component with React and TypeScript, we can add the React.HTMLAttributes
type into our prop type.