type Foo = { a: string; b: number; c: null; d: boolean; } // Ключове на Foo type FooKeys = keyof Foo // Как да обявим нов тип въз основа на FooKeys, но без стойностите b и d? type FooKeysWithoutBD
Frontend
Как да обявите нов тип въз основа на Foo, но без полетата a и c, без да използвате Omit?
От какво зависи повторното рендиране на компонент в React?
Как да накараме конструкцията try/catch да работи с Promise? Как да направим Promise синхронен чрез async/await?
В какъв ред ще се покаже console.log и защо? Обяснете реда на изпълнение на синхронния и асинхронния код (Event Loop, макро и микрозадачи).
Как да направим така, че една генерична функция да приема само низ или екземпляр на класа Bar, а в останалите случаи да издава грешка TypeScript?
Защо предавате функция (c => c + 1) на setCount вместо просто setCount(tick + 1)?
function delayFunc(fn, delay) { return function c(...args) { return new Promise((resolve) => { setTimeout(() => { fn(...args) }, delay * 1000) }) } } function sum(a, b) { console.log(a + b) } const delayedSum = delayFunc(sum, 5); await delayedSum(3, 2); //след 5 секунди ще изведе 5 await delayedSum(5, 3); //след 5 секунди от предишното ще изведе 8
Какъв беше подходът към писането на CSS? Познаваш ли подхода CSS-in-JS?
<div class="list"> <div class="item">1</div> <div class="item">2</div> ... <div class="item">N-1</div> <div class="item">N</div> </div>
Може ли същото да се реализира чрез setTimeout вместо setInterval?
Какво е масив от зависимости в useEffect? Какво ще стане, ако предадете празен масив или изобщо не го предавате?
Разкажи за най-трудната задача през цялото ти преживяване.
Има ли функция foo, която приема аргументи от тип any и ги връща? Как да направим така, че типът на резултата да не е any, а да съответства на типа на предадения аргумент? Използвайте Генерични типове.
Има компонент App и компонент Rand от външна библиотека, който показва случайно число. Трябва да се направи така, че всяка 3 секунди случайното число да се променя, и да се показва брояч на промените. Всичко това само в компонента App.
// Необходимо да изнесем логиката за повторно рендериране в отделен външен hook, // който да позволява работа с таймера отвън (например, да го спре след 10 секунди). // Трябва да се създаде нов компонент RandOnce на базата на компонента Rand, // който при използване в App // няма да обновява случайното число всеки път, когато минат 3 секунди, а ще показва случайно число само веднъж.
Каква е разликата между ключовата дума type и interface в TypeScript? Разкажи за наследяването в типове и интерфейси.
Оценили сте задачата, взели сте я в работа и разбирате, че сте я оценили неправилно и не можете да я завършите навреме. Какво правите в този момент?
Разкажи за своя опит в работата. Как беше организиран процесът на планиране на задачите?
Какви са начините за обработка на грешка в Promise? Може ли да се използва конструкцията try/catch?