Frontend
/** * Task 4: Transform the given type `MaybeProps` to make all of its properties required. */ type MaybeProps = { a?: number; b?: string; };
Task 2: Given multiple Todo interface declarations below, explain what happens when they are present in the same scope. Discuss how TypeScript treats them and fill in the `myTodo` object to satisfy the merged Todo interface requirements. ```typescript interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; } interface Todo { priority: 'high' | 'medium' | 'low'; completed: string; } const myTodo: Todo = {}; ```
Какие utility-типы в TypeScript ты использовала? Знакома ли с ReturnType?
Как типизировать функцию, которая принимает unknown и возвращает конкретный тип, чтобы TypeScript навсегда считал возвращаемое значение этим типом?
Как определить, является ли значение типа unknown конкретным именованным типом? Как сделать так, чтобы TypeScript понял, что проверка выполнена (type guard)?
Знакома ли с типом unknown? Чем он отличается от any?
Что такое generic-типы в TypeScript? Зачем их использовать? Является ли это хорошей практикой или антипаттерном?
Зачем нужен TypeScript? Какую проблему он решает в проектах?
Какой сборщик используется на проекте? Работала ли с Webpack?
Какой у тебя опыт работы с TypeScript? Работала ли с генерацией пакетов типов?
Есть массив строк, представляющих номера пунктов иерархического нумерованного списка (например: '1', '1.1', '1.2', '1.10', '2', '2.1'). Нужно отсортировать их в правильном порядке, как в документе, используя стандартную функцию sort с callback-функцией.
Есть массив чисел, некоторые из которых повторяются. Нужно собрать новый массив без повторений, сохранив порядок чисел. Как решить задачу без использования Set?
Есть массив объектов с полем value. Нужно собрать новый массив, содержащий только числовые значения из этих объектов (без строк). Как это сделать и как проверить, является ли значение числом?
Есть два вложенных блока A и B с заданными размерами. Как расположить блок B ровно по центру блока A? Предложите несколько вариантов, включая решения для старых браузеров без поддержки flexbox.
Расскажите о себе и своём опыте работы.
Задача: что выведет консоль? (код с var в цикле for и массивом functions)
Что такое виртуальный DOM? Зачем он нужен? Каковы три условия алгоритма сравнения деревьев (diffing)?
В чём отличие WebSocket от Socket.io?
Как исправить задачу с var в цикле, кроме замены var на let?
Даны три секции кода. Необходимо написать результат выполнения каждого console.log. var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ------------------ var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ------------------ var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj); console.log(obj); // ??