组件

  1. // 函数表达式
  2. const FunctionO: React.FC = () => <div> FunctionO </div>
  3. // 函数声明式写法
  4. function FunctionR(): React.ReactNode {
  5. return <div>functionR</div>
  6. }

如上,第一种函数表达式返回的是一个函数,为常用组件写法。
第二种函数声明式写法表明返回的是 React.ReactNode 类型。
但是此种类型直接引入组件报错,❓,大多数使用情况如图2
截屏2022-10-17 下午11.16.09.png

  1. import { ReactNode } from 'react';
  2. interface Props {
  3. content: string | ReactNode;
  4. renderComponent: (data:any) => ReactNode;
  5. }

Props

可以使用 interface 和 type 来定义 props
注意使用注释 /* comment /

  1. interface Props {
  2. /** 文案 */
  3. text: string;
  4. }
  5. type otherProp = {
  6. /** 文案 */
  7. text: string;
  8. }
  9. function FunctionR(props:otherProp): React.ReactNode {
  10. const { text } = props;
  11. return <div>functionR {text}</div>
  12. }
  13. const FunctionO: React.FC<Props> = ({text}) => {
  14. return <div> FunctionO{text} </div>
  15. }

Hooks

  1. interface User {
  2. /** name */
  3. name: string,
  4. /** age */
  5. age: number,
  6. }
  7. // 如果初始化为空时
  8. const [ user ] = useState<User |null>(null)