Frontend
Какие ожидания от тебя как сотрудника на протяжении полугода-года работы?
SSG генерирует во время билда, SSR — во время запроса. Когда бы что использовал? Что такое ISR?
Почему у вас на проекте не происходит переход на более новую версию Angular?
Как бы ты типизировал ответы backend в TypeScript, если один endpoint может возвращать разные структуры: список с пагинацией, ошибку или пустой результат? Как организовать типы, чтобы это было удобно использовать по всему проекту?
Какие у тебя есть вопросы по компании и команде? Из кого будет состоять команда?
Расскажи про свой опыт за последние 3-4 года. Какие задачи решал?
Как именно типизировать список с пагинацией? Как использовать пересечение типов для разных вариантов ответа?
Работал ли ты с UI-библиотеками? Какие там есть плагины или расширения?
[имя] спросил: Была ли ситуация, когда коллега явно тонет, а у тебя полная занятость?
import React, { useMemo } from 'react'; import { Button, Table, Tag } from 'antd'; import { useAppDispatch, useAppSelector } from '../hooks/redux'; import { Product } from '../types'; import { deleteProduct } from '../store/productSlice'; const categoryColors: Record<string, string> = { Electronics: 'blue', Accessories: 'green', Tools: 'orange', }; export const ProductList: React.FC = () => { const allProducts = useAppSelector((state) => state.products.items); const products = useMemo(() => [...allProducts], [allProducts]); const dispatch = useAppDispatch(); const handleDelete = (id: string) => { dispatch(deleteProduct(id)); }; const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', }, { title: 'Sales', dataIndex: 'sales', key: 'sales', sorter: (a: Product, b: Product) => a.sales - b.sales, render: (v: number) => v.toLocaleString(), }, { title: 'Category', dataIndex: 'category', key: 'category', render: (category: string) => ( <Tag color={categoryColors[category]}>{category}</Tag> ), }, { title: 'Action', key: 'action', render: (_: any, record: Product) => ( <Button danger onClick={() => handleDelete(record.id)}> Delete </Button> ), }, ]; return <Table dataSource={products} columns={columns} rowKey="id" />; };
Задача: перетаскивание мышкой Нужно сделать возможность зажимать кнопку мыши поверх цветного бокса и перетаскивать его, пока кнопка зажата.
UI-кит был на базе какой-то библиотеки или полностью кастомный?
Есть массив чисел, некоторые из которых повторяются. Нужно собрать новый массив без повторений, сохранив порядок чисел. Как решить задачу без использования Set?
Зачем нужен TypeScript? Какую проблему он решает в проектах?
Что такое обработка событий в React? Что такое синтетический ивент?
Какой у тебя опыт работы с TypeScript? Работала ли с генерацией пакетов типов?
Как определить, является ли значение типа unknown конкретным именованным типом? Как сделать так, чтобы TypeScript понял, что проверка выполнена (type guard)?
Как типизировать функцию, которая принимает unknown и возвращает конкретный тип, чтобы TypeScript навсегда считал возвращаемое значение этим типом?
Как вернуть контекст функции? Расскажи про call, apply, bind.
Сервер находится в Калифорнии, мы в Москве. Задержка сигнала — 50 мс в одну сторону, сервер готовит ответ 20 мс. Через какое время после запроса из браузера мы получим первый бит информации?