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

準備

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

JavaScript

ベースの Tooltip.js です。

import React, { forwardRef } from 'react';
import {
  Tooltip as FlowbiteTooltip,
} from 'flowbite-react';

const Tooltip = forwardRef((
  {
    animation = 'duration-300',
    arrow = true,
    children,
    content,
    placement = 'auto',
    trigger = 'hover',
    style = 'auto',
    ...otherProps
  },
  ref,
) => {
  return (
    <FlowbiteTooltip
      animation={animation}
      arrow={arrow}
      content={content}
      placement={placement}
      trigger={trigger}
      style={style}
      {...otherProps}
    >
      {children}
    </FlowbiteTooltip>
  );
});

export default Tooltip;

TypeScript

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

import React, { forwardRef, LegacyRef } from 'react';
import {
  Tooltip as FlowbiteTooltip,
  TooltipProps as FlowbiteTooltipProps,
} from 'flowbite-react';

type TooltipProps = {} & FlowbiteTooltipProps;

const Tooltip = forwardRef((
  {
    animation = 'duration-300',
    arrow = true,
    children,
    content,
    placement = 'auto',
    trigger = 'hover',
    style = 'auto',
    ...otherProps
  }: TooltipProps,
  ref: LegacyRef<HTMLDivElement>,
) => {
  return (
    <FlowbiteTooltip
      animation={animation}
      arrow={arrow}
      content={content}
      placement={placement}
      trigger={trigger}
      style={style}
      {...otherProps}
    >
      {children}
    </FlowbiteTooltip>
  );
});

export default Tooltip;

結果

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

はい、できました。