Պատմիր Node.js/Express-ի վրա հիմնված լիակատար հավելվածի մասին՝ վճարային էջերի բրենդավորումը ավտոմատացնելու համար։
Frontend
Առաջադրանք 6: Գրեք ընդհանուր ֆունկցիա, որը ընդունում է օբյեկտ, որի պարտադիր հատկությունը name է տիպի string և վերադարձնում է օբյեկտի անունով տող։
Ինչպե՞ս եք աշխատել Git-ով. Ի՞նչ էր շղթայի հոսքը, ինչպես եք թողարկում, ինչպես եք անում hotfix?
Ի՞նչ է տարբերությունը any և unknown-ի միջև TypeScript-ում: Ինչու՞ linter-ը չի բողոքում any-ի համար, բայց պահանջում է type սահմանափակում for 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; }
Խոսեք կուկի վրա հիմնված հաստատման և երկփուլային հաստատման մասին անձնական կաբինետում։
Ինչու եք որոշել աշխատանք փնտրել և ինչու մեզ մոտ?