0Pricing
TypeScript Academy · Урок

Типизация параметра this; void и never

Типизируйте специальный параметр this, разберитесь с лексическим this в стрелочных функциях и узнайте, когда возвращать void, а когда never.

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

Введение

Цель: типизировать специальный параметр this, понять, как стрелочные функции лексически захватывают this, и выбирать между void (без значения) и never (без возврата).

Типизация параметра this

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

function setTitle(this: { title: string }, t: string): void {
  this.title = t;
}

const model = { title: "Old" };
setTitle.call(model, "New");
console.log(model.title);

Стрелочные функции и лексический this

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

const counter = {
  n: 0,
  tick: function () {
    setTimeout(() => {
      // Arrow keeps outer this (counter)
      this.n++;
      console.log(this.n);
    }, 0);
  },
};

counter.tick();

Возврат void

void означает, что функция не возвращает содержательного значения. Вызывающий код не должен использовать её результат.

function logMsg(msg: string): void {
  console.log(msg);
}

const r = logMsg("hello"); // r is void (ignored)
// Returning a value here would error when annotated as void

Возврат never

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

function fail(message: string): never {
  throw new Error(message);
}

function loopForever(): never {
  while (true) {}
}

// Calling either function never returns

Рекомендации

Советы:

  • Используйте параметр this только в нестрелочных функциях, зависящих от получателя.
  • Предпочитайте стрелочные обратные вызовы, чтобы не потерять this.
  • Аннотируйте функции с побочными эффектами как void; используйте never для выбрасывания исключений, циклов и исчерпывающих защитных проверок.

Проверка параметра this

Быстрая проверка: Какое утверждение о параметре «this» является TRUE?

Итоги

Итоги: Типизируйте получатель с помощью параметра this в нестрелочных функциях, полагайтесь на стрелочные функции для лексического this и правильно выбирайте между void и never.

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

Урок «Типизация параметра this; void и never» бесплатный?

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

Чему я научусь в уроке «Типизация параметра this; void и never»?

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

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

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

Сколько времени занимает урок «Типизация параметра this; void и never»?

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

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

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

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

  1. Перегрузки функций и сигнатуры вызова
  2. Типизация параметра this; void и never
  3. Функции-утверждения и пользовательские защиты типов
← Назад к TypeScript Academy