[React+Tailwind] Progress を TypeScript に書き直してみた | 心を無にして始める React

準備

書き直すベースはこちらの Progress コンポーネントです。

JavaScript

ベースの Progress.js です。

import React, { forwardRef } from 'react';
import {
  Progress as FlowbiteProgress,
} from 'flowbite-react';

const Progress = forwardRef((
  {
    children,
    size = 'md',
    label,
    labelPosition = 'none',
    labelProgress = false,
    progress,
    ...otherProps
  },
  ref,
) => {
  return (
    <FlowbiteProgress
      size={size}
      label={label}
      labelPosition={labelPosition}
      labelProgress={labelProgress}
      progress={progress}
      ref={ref}
      {...otherProps}
    >
      {children}
    </FlowbiteProgress>
  );
})

export default Progress;

TypeScript

Progress.tsx として編集します。

import React, { forwardRef, LegacyRef } from 'react';
import {
  Progress as FlowbiteProgress,
  ProgressProps as FlowbiteProgressProps,
} from 'flowbite-react';

type ProgressProps = {} & FlowbiteProgressProps;

const Progress = forwardRef((
  {
    children,
    size = 'md',
    label,
    labelPosition = 'none',
    labelProgress = false,
    progress,
    ...otherProps
  }: ProgressProps,
  ref: LegacyRef<HTMLDivElement>,
) => {
  return (
    <FlowbiteProgress
      size={size}
      label={label}
      labelPosition={labelPosition}
      labelProgress={labelProgress}
      progress={progress}
      ref={ref}
      {...otherProps}
    >
      {children}
    </FlowbiteProgress>
  );
})

export default Progress;

結果

変化はないので、前と同じ。

はい、できました。