我对typescript
很陌生,所以请耐心等待。
我正在尝试转换这个react
组件:
interface ButtonProps {...}
const Button: React.FC<ButtonProps> = ({
children,
href,
value
as = 'button',
...props
}) => {
const Element = href ? 'a' : as;
// ...
return (
<Element {...props}>
<span>{value || children}</span>
</Element>
);
};
但我在<Element>
元素上得到以下错误:
JSX element type 'Element' does not have any construct or call signatures.
我可以通过用any
键入Element
来满足编译器的要求,但这感觉很脏。
从TS
的角度来看,我应该如何处理这种模式?
谢谢!
使用ElementType
interface ButtonProps {
...
as?: ElementType
}