Төлөм баракчаларынын бренддөө автоматташтыруу үчүн Node.js/Express негизделген толук стек тиркемеси жөнүндө айтып бер.
Frontend
Үй тапшырма 6: Мүнөздүү мүнөздөмөсү бар болбогон объектти кабыл алган жана объекттин атын камткан сапты кайтарган жалпы функция жаз.
Git менен иштешиңиз кандай болду: кайсы шохо агымы болду, кантип чыгаруу жасадык, hotfix кантип жасадык?
TypeScript'te any менен unknown ортосундагы айырма эмнеде? Неге линтер any үчүн даттанбайт, бирок unknown үчүн түр чектөөнү талап кылат?
/** * Вазифа 4: берилген `MaybeProps` түрүн өзгөртүп, анын бардык мүнөздөмөлөрүн милдеттүү кылуу. */ type MaybeProps = { a?: number; b?: string; };
Үй тапшырмасы 2: Төмөндө көптөгөн Todo интерфейсинин декларациялары берилген, алардын бир эле чөйрөдө болушу эмне болуп жатканын түшүндүрүңүз. TypeScript аларды кантип иштетип жатканын талкуулап, бириктирилген Todo интерфейсинин талаптарына жооп берүү үчүн `myTodo` объектин толтуруңуз. ```typescript interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; } interface Todo { priority: 'high' | 'medium' | 'low'; completed: string; } const myTodo: Todo = {}; ```
/** * Тапшырма 3: Төмөндө көрсөтүлгөн функцияны анализдеп, бардык каталарды оңдоңуз. `never` түрүнүн ролун TypeScriptте түшүндүрүңүз. */ function throwError(): never { throw new Error('Ката кетти'); } /** * Тапшырма 4: берилген `MaybeProps` түрүн өзгөртүп, анын бардык мүнөздөмөлөрүн милдеттүү кылуу. */ type MaybeProps = { a?: number; b?: string; }; /** * Тапшырма 5: бир гана `value` мүнөздөмөсү бар жалпы `Container` түрүн түзүңүз. * `value` түрү `string` же `number` менен чектелиши керек. */ type Container<T> = { value: T; };
Үй тапшырма 7: Alien жана Human түрлөрү бар, алар Person түрүндө бириктирилген. checkAlien функциясын жаз, ал берилген Person тышкы дүйнөдөн экенин текшерет. isAlien мүлкүнө кирүүдө пайда болгон TypeScript катасын оңдо.
Тимде терс тажрыйбаңыз болду беле, мисалы, кодду карап чыгууда тыгыз талаш-тартыштар? Мындай жагдайда кандай аракет кылмаксыз?
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 алардын кандай иштээрин талкууланыз жана бириктирилген Todo интерфейсинин талаптарына жооп берүү үчүн `myTodo` объектин толтуруңуз. */ interface Todo { title: string; dueDate: Date; } interface Todo { description: string; completed: boolean; }
Кукилерге негизделген аутентификация жана эки факторлуу авторизация жөнүндө айтып бер.
Неге жумуш издөөгө чечим кылдыңыз жана эмне үчүн биз?