Типизация параметра 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 — локальная установка не требуется.
Все уроки этого курса
- Перегрузки функций и сигнатуры вызова
- Типизация параметра this; void и never
- Функции-утверждения и пользовательские защиты типов