Добро пожаловать в тест на проверку знаний основ языка программирования TypeScript. Этот тест разработан для оценки вашего понимания базовых принципов работы со строгой типизацией, которые являются фундаментом для написания надежного и масштабируемого кода. TypeScript расширяет возможности JavaScript, добавляя систему типов, что позволяет обнаруживать ошибки еще на этапе написания кода, а не во время его выполнения. В данном тесте мы затронем ключевые аспекты, необходимые для начала работы с этим инструментом. Что проверяет этот тест? Аннотация типов: Ваше умение явно указывать типы переменных, аргументов функций и возвращаемых значений. Вы проверите, насколько хорошо вы понимаете синтаксис : type. Автоматический вывод типов (Type Inference): Способность предсказывать, какой тип данных TypeScript присвоит переменной автоматически, если он не указан явно. Это критически важный навык для написания чистого и лаконичного кода. Ошибки компиляции: Навык выявления потенциальных проблем. Вы столкнетесь с примерами кода и должны будете определить, пропустит ли их компилятор или выдаст ошибку несоответствия типов. Тест состоит из 15 вопросов разной сложности. В некоторых вопросах вам потребуется выбрать единственный верный ответ, в других — отметить все подходящие варианты. Будьте внимательны: иногда интерфейс может предлагать множественный выбор там, где правильный ответ всего один! Успешное прохождение этого теста подтвердит вашу готовность к изучению более сложных концепций TypeScript, таких как интерфейсы, дженерики и утилитарные типы. Начать тестДалее Шаг 1 из 15 Какой синтаксис используется для явного указания типа number переменной age? let age: number = 25;let age = 25: number;let age :: number = 25;number age = 25; ДалееДалее Шаг 2 из 15 Какой тип будет автоматически присвоен переменной в следующем коде: `let userName = 'Alice';`? anytextcharstring НазадНазад ДалееДалее Шаг 3 из 15 Приведет ли следующий код к ошибке компиляции? `let count: number = 10;` `count = '10';` Нет, так как строка содержит число.Да, так как тип 'string' не может быть присвоен типу 'number'.Нет, TypeScript автоматически преобразует строку в число. НазадНазад ДалееДалее Шаг 4 из 15 Выберите все правильные способы объявления массива чисел (выберите все подходящие варианты): let list: Array<number> = [1, 2, 3];let list: number[] = [1, 2, 3];let list: number = [1, 2, 3];let list: array[number] = [1, 2, 3]; НазадНазад ДалееДалее Шаг 5 из 15 Какой тип будет у переменной `x`, если она объявлена без значения и без типа: `let x;`? voidanyundefinedunknown НазадНазад ДалееДалее Шаг 6 из 15 Что произойдет при попытке скомпилировать следующий код? `let isActive: boolean = 1;` Ошибка: Тип 'number' не может быть присвоен типу 'boolean'.Код скомпилируется успешно, так как 1 интерпретируется как true.Предупреждение, но компиляция пройдет. НазадНазад ДалееДалее Шаг 7 из 15 Как правильно указать, что функция `greet` принимает аргумент `name` типа строка и ничего не возвращает? function greet(name: string): void { ... }function greet(name: string): undefined { ... }function greet(name): void { ... }function greet(string name): empty { ... } НазадНазад ДалееДалее Шаг 8 из 15 Рассмотрите код: `let a = 10;` `let b = a + '5';` Какой тип будет выведен для переменной `b`? numberanystringNaN НазадНазад ДалееДалее Шаг 9 из 15 Выберите все строки, которые вызовут ошибку компиляции, если переменная объявлена как `let identifier: string;` identifier = "Value";identifier = 500;identifier = true;identifier = `Template string`; НазадНазад ДалееДалее Шаг 10 из 15 Какой из следующих вариантов является правильной аннотацией типа для объекта с полями `id` (число) и `title` (строка)? let item: { id: number, title: string } = { id: 1, title: 'Book' };let item: [number, string] = { id: 1, title: 'Book' };let item: object = { id: 1, title: 'Book' };let item: { number, string } = { id: 1, title: 'Book' }; НазадНазад ДалееДалее Шаг 11 из 15 Что произойдет, если мы попытаемся умножить строку на число в TypeScript? Пример: `'hello' * 5` Вернется NaN (Not a Number) без ошибки компиляции.Произойдет ошибка компиляции: левая часть арифметической операции должна быть типа 'any', 'number', 'bigint'...Строка повторится 5 раз. НазадНазад ДалееДалее Шаг 12 из 15 Автоматический вывод типов работает: Только при объявлении переменных.При инициализации переменных, возврате значений из функций и установке значений по умолчанию.Только для примитивных типов данных (числа, строки). НазадНазад ДалееДалее Шаг 13 из 15 Зачем нужно явно указывать типы (аннотация), если есть автоматический вывод типов? Чтобы компилятор работал быстрее.В сложных ситуациях, когда TypeScript не может верно определить тип, или для явного контракта (например, параметры функции).Это обязательно для всех переменных, иначе код не скомпилируется. НазадНазад ДалееДалее Шаг 14 из 15 Дан код: `function getStatus(code: number) { return code > 200 ? 'OK' : false; }` Какой тип вернет эта функция (выведенный автоматически)? string | booleananyvoidboolean НазадНазад ДалееДалее Шаг 15 из 15 Можно ли переопределить тип переменной после её инициализации, если использовался `let`? Да, переменные `let` динамические.Нет, после того как тип определен (явно или через вывод), он закрепляется за переменной. НазадНазад ДалееДалее Поздравляем, вы ответили на все вопросы! Показать результатыПоказать результаты