Разкажи за пълностек приложение на Node.js/Express за автоматизация на брандирането на платежните страници.
Frontend
Задача 6: Напишете генерична функция, която приема обект с задължително свойство name от тип string и връща низ с името на същността.
Как работихте с Git: какъв беше потокът на разклоняване, как пускате версии, как правехте hotfix?
Каква е разликата между any и unknown в TypeScript? Защо линтерът не се оплаква от any, но изисква ограничаване на типа за unknown?
/** * Задача 4: Преобразувайте дадения тип `MaybeProps`, за да направите всички негови свойства задължителни. */ type MaybeProps = { a?: number; b?: string; };
Задача 2: Дадени са няколко декларации за интерфейс Todo по-долу, обяснете какво се случва, когато те са в една и съща обхват. Обсъдете как TypeScript ги третира и попълнете обекта `myTodo`, за да отговаря на изискванията на слетия интерфейс Todo. ```typescript interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; } interface Todo { priority: 'high' | 'medium' | 'low'; completed: string; } const myTodo: Todo = {}; ```
Задача 7: Има типове Alien и Human, обединени в тип Person. Напишете функция checkAlien, която проверява дали предаденият Person е извънземно. Коригирайте грешката TypeScript при достъп до свойството isAlien.
/** * Задача 3: Анализирайте функцията по-долу и коригирайте всички грешки. Обяснете ролята на типа `never` в TypeScript. */ function throwError(): never { throw new Error('Възникна грешка'); } /** * Задача 4: Трансформирайте дадения тип `MaybeProps`, за да направите всички негови свойства задължителни. */ type MaybeProps = { a?: number; b?: string; }; /** * Задача 5: Създайте генеричен тип `Container`, който съдържа едно свойство `value`. * Типът на `value` трябва да бъде ограничен до `string` или `number`. */ type Container<T> = { value: T; };
Имал ли си негативен опит в екип, например интензивни спорове при преглед на код? Как би постъпил в такава ситуация?
Разкажи за използването на Astro: как го избрахте, как управлявате съдържанието?
/** * Задача 1: Генерични типове и безопасност на ключовете * Създайте функция `getProperty`, която приема обект и ключ. * Използвайте генерични типове, за да гарантирате, че функцията е типово безопасна и че ключът съществува в обекта. */ function getProperty<T extends Record<string, unknown>, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; } getProperty('str', 'toString') /** * Задача 2: Дадени са няколко декларации за интерфейса Todo по-долу, обяснете какво се случва, когато те са в една и съща област. * Обсъдете как TypeScript ги третира и попълнете обекта `myTodo`, за да отговаря на изискванията на слятия интерфейс Todo. */ interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; }
Разкажи за cookie-базирана автентикация и двуфакторна авторизация в личния кабинет.
Защо решихте да търсите работа и защо при нас?