Тип void используется для обозначения отсутствия какого-либо возвращаемого значения. Чаще всего он встречается в сигнатурах функций, которые выполняют действия (side effects), но не возвращают результат (например, console.log или запись в базу данных).
Важно отличать void от undefined. Если функция помечена как : void, это сигнал разработчику: «не используй результат выполнения этой функции». Синтаксис прост: function log(): void { ... }. В этих задачах мы научимся корректно типизировать такие процедуры.
- Модуль 1: Введение в TypeScript
- Модуль 2: Примитивные типы
- Модуль 3: Специальные типы
- Модуль 4: Массивы
- Модуль 5: Кортежи (Tuples)
- Модуль 6: Объекты
- Модуль 7: Функции
- Модуль 8: Union типы
- Модуль 9: Литеральные типы
- Модуль 10: Type Aliases
- Модуль 11: Интерфейсы
- Модуль 12: Type Guards и Narrowing
- Модуль 13: Enums
- Модуль 14: Классы
- Модуль 15: Generics — основы
- Модуль 16: Generics — ограничения
- Модуль 17: Utility Types — базовые
- Модуль 18: Utility Types — работа с Union
- Модуль 19: Utility Types — функции
- Модуль 20: Type Assertions
- Модуль 21: Keyof и Typeof операторы
- Модуль 22: Mapped Types
- Модуль 23: Conditional Types
- Модуль 24: Discriminated Unions
- Модуль 25: Модули и типы
- Модуль 26: Declaration Files
- Модуль 27: Типизация асинхронного кода
- Модуль 28: Практические паттерны
1. Аннотация void
В этом задании вам нужно дополнить объявление функции, которая сбрасывает значение переменной. Функция не возвращает никакого значения, поэтому требуется указать соответствующий тип возвращаемого значения в её сигнатуре. Обратите внимание на синтаксис аннотации типов в TypeScript.
let total: number = 100;
function resetTotal() input1S {
total = 0;
}2. Функции-процедуры
Внимательно изучите представленный класс на TypeScript. Ваша задача — отметить все методы, которые по своей логике являются процедурами, то есть выполняют какое-либо действие (например, устанавливают значение поля или выводят информацию), но не возвращают результат. В TypeScript таким методам обычно указывают тип возврата `void`. Обратите внимание на назначение каждого метода: сеттеры (устанавливающие значения) и методы логирования обычно не возвращают значения. Не отмечайте методы, которые явно предназначены для возврата данных (геттеры, расчётные методы).
class UserManager {
private name: string;
private email: string;
private age: number;
constructor(name: string, email: string, age: number) {
this.name = name;
this.email = email;
this.age = age;
}
{{getName(): string~|~t1}} {
return this.name;
}
{{setName(newName: string): void~|~t2}} {
this.name = newName;
}
{{logUser(): void~|~t3}} {
console.log(`User: ${this.name}, Email: ${this.email}`);
}
{{calculateAge(): number~|~t4}} {
return new Date().getFullYear() - this.age;
}
{{updateEmail(newEmail: string): void~|~t5}} {
this.email = newEmail;
}
{{getEmail(): string~|~t6}} {
return this.email;
}
{{validateEmail(): boolean~|~t7}} {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(this.email);
}
}3. Возврат значения из void
В этом фрагменте кода TypeScript есть ошибка, связанная с использованием типа void. Функция объявлена как возвращающая void, но внутри неё присутствует оператор return с возвращаемым значением. Исправьте ошибку, чтобы код соответствовал правилам TypeScript и успешно компилировался.
function logMessage(message: string): void { console.log(message); return true;} 4. Порядок выполнения
Проанализируйте TypeScript-код сверху и восстановите последовательность логических шагов выполнения программы. Шаги снизу перемешаны — расставьте их в правильном порядке, чтобы отразить, как программа обрабатывает входные данные и что выводит в консоль.
function logStart(): void {
console.log('Начало обработки');
}
function logStep(value: number): void {
console.log(`Шаг ${value}`);
}
function logEnd(): void {
console.log('Завершение обработки');
}
function processData(data: number[]): void {
logStart();
for (let i = 0; i < data.length; i++) {
if (data[i] > 0) {
logStep(data[i]);
}
}
logEnd();
}
const inputData: number[] = [1, -2, 3, 0, 5];
processData(inputData);5. Результат присваивания
В данном фрагменте кода TypeScript объявлена функция, возвращающая тип void. Результат вызова этой функции присваивается переменной, после чего значение этой переменной выводится в консоль. Определите, что будет выведено в консоль. Введите ответ в поле ниже в точности так, как оно появится при выполнении кода.
function logMessage(): void {
console.log("Hello");
}
let result = logMessage();
console.log(result);