JavaRush /Курсы /Модуль 3: React /Основы TypeScript в React — зачем он нужен и как помогает...

Основы TypeScript в React — зачем он нужен и как помогает в разработке

Модуль 3: React
1 уровень , 1 лекция
Открыта

Зачем использовать TypeScript с React?

Прежде чем мы погрузимся в детали, представьте следующую ситуацию. Вы работаете над крупным проектом, и кто-то случайно передал строку в функцию, которая ожидает число. Код вроде бы все работает, но вывод результата — это тот самый момент, когда вы хватаетесь за голову. TypeScript приходит как спаситель, чтобы предотвратить такие сценарии на этапе написания кода.

Преимущества типизации с TypeScript:

  1. Снижение количества ошибок. TypeScript позволяет вам точно определить, какие типы данных ожидаются, и предупредит вас, если вы передаете что-то не то. Его девиз: "Программист предупрежден — значит вооружен".

  2. Автодополнение в IDE. Если вы используете редакторы, такие как VS Code, TypeScript станет вашим помощником: автодополнение, подсказки о типах и документация прямо на экране. Это значительно ускоряет разработку.

  3. Ясность кода. Когда каждый компонент и функция четко описаны через типы, читать ваш код становится так же легко, как пошаговую инструкцию.

  4. Поддержка в команде. В командных проектах типизация помогает ясно понимать, что вы передаете в компоненты и функции. Это особенно полезно, когда появляется новый разработчик.

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

Введение в TypeScript

Теперь давайте познакомимся с основами TypeScript. На самом деле TypeScript — это всего лишь расширение JavaScript, добавляющее функционал статической типизации и немного функциональности будущей версии JS.

Что делает TypeScript?

TypeScript добавляет в JavaScript строгую систему типов. Например, в чистом JS вы можете написать вот так:

function add(a, b) {
  return a + b;
}
Но кто гарантирует, что a и b всегда будут числами? Никаких гарантий! С TypeScript все выглядит вот так:
function add(a: number, b: number): number {
  return a + b;
}

Теперь, если вы передадите строку вместо числа, TypeScript немедленно сообщит вам об этом до запуска программы!

🧙 Факт:

TypeScript разработали в Microsoft, чтобы облегчить создание крупных приложений. Ну а если Microsoft намекает, что что-то поможет разобраться с хаосом — это важно.

Основы TypeScript: типы и интерфейсы

  • Типы: TypeScript предоставляет возможность описывать типы данных (числа, строки, массивы и т.д.).

    Пример:

    let age: number = 30;
    let userName: string = "Alex";
    let isLoggedIn: boolean = true;
    
  • Интерфейсы: это мощный инструмент для описания структур данных.

    Пример интерфейса для объекта:

    interface User {
      id: number;
      name: string;
      isAdmin: boolean;
    }
    
      const user: User = { id: 1, name: "Alice", isAdmin: true };

Как TypeScript помогает в разработке React-приложений?

Теперь, когда мы поняли основной принцип работы TypeScript, давайте посмотрим, как его можно использовать с React. TypeScript подходит для React как круассан к кофе, и вот почему:

Типизация пропсов (Props)

Компоненты React часто используют пропсы для передачи данных вниз по иерархии компонентов. TypeScript позволяет вам точно определить, какие пропсы может принимать компонент. Пример:

interface Props {
  name: string;
  age: number;
}

const Greeting: React.FC<Props> = ({ name, age }) => {
  return (
    <div>
      <h1>Hello, {name}</h1>
      <p>You are {age} years old.</p>
    </div>
  );
};

Теперь, если кто-то попытается передатьage как строку, TypeScript скажет: "Эй, стоп-стоп-стоп, тут должно быть число!"

Типизация состояния (State)

Состояние компонентов — это еще одно место, где TypeScript проявляет свою магию. Вот пример с хуком useState:

import React, { useState } from "react";

const Counter: React.FC = () => {
  const [count, setCount] = useState<number>(0);

  return (
    <div>
      <button onClick={() => setCount(count + 1)}>Increment</button>
      <p>Count: {count}</p>
    </div>
  );
};

Обратите внимание на <number> в useState. Это гарантирует, что состояние count всегда будет числом. Попытайтесь присвоить строку — и TypeScript вам не позволит.

Повышение качества кода

TypeScript заставляет вас продумывать структуру данных, которую вы передаете и обрабатываете в приложении. Это хорошая инженерная привычка, которая экономит массу времени на отладку.

Разбор реального кейса

Представьте, что вы пишете компонент формы. Вот как это могло бы выглядеть на чистом JavaScript:

const Form = ({ onSubmit }) => {
  return <button onClick={() => onSubmit("Hello")}>Submit</button>;
};

Теперь представьте, что кто-то передает onSubmit — ожидающий объект, а не строку. Ну весело будет, не правда ли? С TypeScript эта ситуация предотвращается сразу:

interface FormProps {
  onSubmit: (data: string) => void;
}

const Form: React.FC<FormProps> = ({ onSubmit }) => {
  return <button onClick={() => onSubmit("Hello")}>Submit</button>;
};

Теперь функция onSubmit обязана принимать строку, и любая попытка нарушить это правило будет заблокирована на этапе сборки.

Полезные ссылки на документацию

Для изучения TypeScript в React полезно использовать официальную документацию TypeScript и раздел о React в TypeScript.

Типичные ошибки при использовании TypeScript

  1. Типизация всего подряд. Излишняя типизация может сделать код громоздким. Например, такие переменные, как let count: number = 0;, можно не типизировать вручную. TypeScript автоматически выведет тип.

  2. Пренебрежение необязательными пропсами. Обязательно используйте ? для указания необязательных пропсов:

    interface Props {
      title?: string;
    }
    
  3. Сложные интерфейсы без комментариев. Если создаете сложные интерфейсы, не забывайте добавлять комментарии, чтобы вам (и вашим коллегам) было проще их понимать.

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

Вперед к созданию React-приложения с TypeScript! 🚀

1
Задача
Модуль 3: React, 1 уровень, 1 лекция
Недоступна
Счетчик кликов
Счетчик кликов
1
Задача
Модуль 3: React, 1 уровень, 1 лекция
Недоступна
Калькулятор
Калькулятор
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Yuri S Уровень 50
18 августа 2025
Крутые задачи!