我正在研究故事書中的一個組件,它的外觀如下:
import React, { useCallback } from 'react';
import { ButtonProps } from './types';
const Button = (props: ButtonProps) => {
// Destructre the needed props to be used across the component
const { children, extraClasses, onClick } = props;
// Memoize the onClick function so it is not recreated upon
// each re-render
const memoizedOnClick = useCallback(() => onClick?.(props), []);
return (
<button className={extraClasses} onClick={memoizedOnClick}>
{children}
</button>
);
};
Button.defaultProps = {
children: <b>Test Button</b>
};
export default Button;
我現在想要的是從組件本身中提取道具(ButtonProps)的型別,以便我可以在另一個界面中使用它。我嘗試了以下行,但它總是說 type 是 any:
type DefaultButtonProps = React.ComponentProps<typeof Button>
當我將其宣告如下時,為什么型別 DefaultButtonProps 始終存在的任何幫助:
export interface ButtonProps extends HTMLButtonElement {
children: ReactNode,
extraClasses?: string;
onClick?: (props: ButtonProps) => void
}
提前致謝。
uj5u.com熱心網友回復:
我試過你的實作DefaultButtonProps
,它是ButtonProps
,不是any
。
無論如何,您還可以測驗以下內容:
type DefaultButtonProps = Parameters<typeof Button>[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517346.html
標籤:反应打字稿故事书