0Pricing
TypeScript Academy · Урок

Стрелочные функции и контекстная типизация

Уверенно используйте стрелочные функции и узнайте, как контекстная типизация выводит типы параметров и возвращаемого значения на основе использования.

«Стрелочные функции и контекстная типизация» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 3 уроков всего.

Зачем нужны стрелочные функции и контекст

Стрелочные функции имеют краткий синтаксис и лексическое значение this. Благодаря контекстному выводу типов TypeScript выводит типы параметров и возвращаемых значений из контекста использования (например, методов массивов), поэтому вам требуется меньше шаблонного кода без потери безопасности.

Основы стрелочных функций

Аннотируйте параметры и возвращаемые значения, когда это повышает ясность. Стрелочные функции компактны и сохраняют окружающий this (в отличие от объявлений функций).

// Arrow syntax: parameters => expression/body
const greet = (name: string): string => {
  return `Hello, ${name}`;
};

console.log(greet("Ada"));

Контекст при использовании map

Контекстный вывод типов: map знает тип элемента, поэтому тип параметра стрелочной функции выводится как number, а результат — как number[].

// Context supplies types: numbers.map expects (n:number)=>number
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2); // n inferred as number
console.log(doubled);

Вывод возвращаемых типов

Типизированные API (Promise, методы массивов) помогают выводить типы параметров и возвращаемых значений, уменьшая потребность в явных аннотациях.

// Promise.then infers the callback parameter and return type
const toLength = (s: string) => s.length;

Promise.resolve("TS")
  .then(s => toLength(s))       // s inferred as string
  .then(len => console.log(len));

Необязательные параметры и значения по умолчанию

Стрелочные функции поддерживают значения по умолчанию и необязательные параметры. Сужайте тип или задавайте запасные значения (например, с помощью ??) перед использованием необязательных параметров.

// Optional + default with arrows
const padLeft = (text: string, width = 2, ch?: string): string => {
  const fill = (ch ?? " ").repeat(Math.max(0, width));
  return fill + text;
};

console.log(padLeft("X"));         // default width 2, default char " "
console.log(padLeft("X", 4, "."));

Подводные камни

Подводные камни:

  • Избыток аннотаций мешает выводу типов; начните с минимума.
  • Будьте явны, если API не типизированы (any) или намерение неясно.
  • Помните, что стрелочные функции лексически захватывают this: это отлично подходит для обратных вызовов, но их следует избегать, когда требуется динамический this.

Проверка контекстного вывода типов

Быстрая проверка: что означает «контекстный вывод типов» для стрелочных функций?

Итоги и далее

Итоги: стрелочные функции имеют краткий синтаксис и лексическое значение this. Контекстный вывод типов позволяет контексту использования определять типы, поэтому обратные вызовы остаются короткими и безопасными с точки зрения типов.

Часто задаваемые вопросы

Урок «Стрелочные функции и контекстная типизация» бесплатный?

Да — полный текст урока «Стрелочные функции и контекстная типизация» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Стрелочные функции и контекстная типизация»?

Уверенно используйте стрелочные функции и узнайте, как контекстная типизация выводит типы параметров и возвращаемого значения на основе использования. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Стрелочные функции и контекстная типизация»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. If/else, switch, циклы; истинностные и строгие проверки
  2. Функции: параметры, значения по умолчанию, необязательные и rest-параметры; возвращаемые типы
  3. Стрелочные функции и контекстная типизация
← Назад к TypeScript Academy