Наполните свой сборник рассказов React с помощью TypeScript: подробное руководство

React Storybook — это мощный инструмент, который позволяет разработчикам создавать и тестировать изолированные компоненты пользовательского интерфейса в среде разработки. В сочетании с TypeScript React Storybook становится еще более надежным и помогает обеспечить безопасность типов и улучшить качество кода. В этой статье мы рассмотрим различные методы и лучшие практики использования React Storybook с TypeScript, а также приведем примеры кода.

  1. Настройка React Storybook с TypeScript:
    Чтобы начать использовать React Storybook с TypeScript, вам необходимо правильно настроить проект. Ниже приведен пример настройки базового проекта React Storybook с помощью TypeScript:
npx create-react-app my-app
cd my-app
npx -p @storybook/cli sb init --type react_scripts
  1. Написание историй с помощью TypeScript:
    В React Storybook истории используются для демонстрации различных состояний компонента. Вот пример того, как написать историю с помощью TypeScript:
// Button.stories.tsx
import React from 'react';
import { Meta } from '@storybook/react/types-6-0';
import { Button, ButtonProps } from './Button';
export default {
  title: 'Button',
  component: Button,
} as Meta;
export const Primary: React.FC<ButtonProps> = (args) => (
  <Button {...args} variant="primary">Primary Button</Button>
);
export const Secondary: React.FC<ButtonProps> = (args) => (
  <Button {...args} variant="secondary">Secondary Button</Button>
);
  1. Добавление типов TypeScript:
    TypeScript позволяет определять типы для ваших компонентов, свойств и других объектов. Вот пример того, как определить типы для компонента кнопки:
// Button.tsx
import React from 'react';
export interface ButtonProps {
  variant: 'primary' | 'secondary';
  onClick: () => void;
}
export const Button: React.FC<ButtonProps> = ({ variant, onClick, children }) => (
  <button className={`btn btn-${variant}`} onClick={onClick}>{children}</button>
);
  1. Дополнения Storybook для TypeScript:
    Дополнения Storybook расширяют возможности разработки, предоставляя дополнительные функции. Некоторые популярные дополнения для разработчиков TypeScript:
  • @storybook/addon-actions: позволяет взаимодействовать с компонентами пользовательского интерфейса Storybook.
  • @storybook/addon-knobs: предоставляет интерфейс для динамического редактирования свойств компонента.
  • @storybook/addon-docs: автоматически создает документацию на основе ваших историй.
  1. Написание тестов с помощью Storybook и TypeScript:
    Storybook также можно использовать для написания тестов пользовательского интерфейса. Для выполнения тестов вы можете использовать библиотеки тестирования, такие как Jest и React Testing Library. Вот пример теста с использованием библиотеки тестирования TypeScript, Jest и React:
// Button.test.tsx
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { Primary } from './Button.stories';
describe('Button', () => {
  it('renders correctly', () => {
    const { getByText } = render(<Primary />);
    expect(getByText('Primary Button')).toBeInTheDocument();
  });
  it('calls onClick handler when clicked', () => {
    const onClick = jest.fn();
    const { getByText } = render(<Primary onClick={onClick} />);
    fireEvent.click(getByText('Primary Button'));
    expect(onClick).toHaveBeenCalled();
  });
});

В этой статье мы рассмотрели различные методы и лучшие практики использования React Storybook с TypeScript. Мы научились настраивать проект, писать истории, определять типы TypeScript, использовать дополнения Storybook и писать тесты. Используя возможности React Storybook и TypeScript, разработчики могут улучшить качество кода, обеспечить безопасность типов и ускорить процесс разработки пользовательского интерфейса.

Не забывайте регулярно обновлять и поддерживать документацию Storybook по мере развития ваших компонентов. Приятного кодирования!