Ի՞նչ Angular մատակարարի կոնֆիգուրացիայի տարբերակներ եք գիտակցում՝ useClass, useExisting, useValue և useFactory: Երբ պետք է օգտագործել դրանք?
Frontend
Ինչպե՞ս ենք դիտելու հաղորդագրությունների պատմությունը, եթե այն շատ մեծ է: Ինչպե՞ս իրականացնել էջավորումը:
Կատարեք այնպես, որ հաղթանակի/պարտության հաղորդագրությունը անհետանա բաբախողի պտտվելու ժամանակ։
Դիտեք կոդը, որտեղ կա դաս, որը ունի կոնստրուկտոր՝ multiplier դաշտով, add մեթոդ՝ թվեր ավելացնելու համար զանգվածին և getMultiSum մեթոդ՝ որը իրականացվում է սովորական ֆունկցիայի միջոցով: Ի՞նչ կցուցադրվի կոնսոլում այս կոդը գործարկելու ժամանակ:
Եթե անհրաժեշտ է մեծացնել ռոլիկների (բարերի) քանակը, օրինակ, տասը, ինչպես դարձնել իրականացմանը ճկուն, որպեսզի չպահեք արժեքները ձեռքով յուրաքանչյուր ռոլիկի համար (օրինակ, միջոցով պարամետրը numberOfRollers և Array.from)?
Կարո՞ղ է դա ճիշտ աշխատի, եթե clearCache- ը փոխանցվի ոչ թե callback-ի միջոցով, այլ որպես ուղղակի հղում map.clear մեթոդին (օրինակ, clearCache = cache.clear): Ինչպե՞ս կարելի է դա ուղղել։
TypeScript-ի առաջադրանքի երրորդ մասը՝ ստեղծել նոր տիպ՝ հիմնված Delivery տիպի վրա, որի բոլոր դաշտերը ընտրովի են (կարող են ունենալ undefined արժեք) և չեն կարող փոխել իրենց արժեքը (readonly): Օգտագործեք utility տիպեր Partial և Readonly։
Դուք ունե՞ք փորձ ձեր սեփական RxJS օպերատորներ գրելու։
Ինչպե՞ս ուղղել ավելորդ վերաարտադրությունները, որպեսզի 'Rerender'-ի վրա կտկտացնելիս միայն App-ը վերաարտադրվի, իսկ տեքստի մուտքագրումիս՝ միայն Parent ( Child-ով չլինել):
Ի՞նչ նախագծեր եք ստիպված եղել նախագծել՝ զրոյից կամ մեծ ճարտարապետական բլոկներ:
Ինչու՞ պետք է promiseAll-ի իրականացման ժամանակ հենվել հաշվողական count-ի վրա, այլ ոչ թե պարզապես ստուգել արդյունքների զանգվածի երկարությունը։
// Նույնպես, կա 25 օբյեկտ, որոնք // ունեն մասնավոր նույնականացուցիչ և մեթոդ դրա նշանակման համար // ինչպես նաև ստեղծման ամսաթվի դաշտ: // նույնականացուցիչը կարող է պարունակել թիվ կամ տող: // ստեղծման ամսաթվի դաշտը նույնպես կարող է պարունակել տող կամ թիվ: // ստեղծման ամսաթվի և նույնականացուցիչի տիպերը համընկնում են (կամ տող, կամ թիվ) // Նկարագրեք այդպիսի օբյեկտների տիպը let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // այս օբյեկտը Չպետք է համապատասխանի տիպին: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
Ի՞նչ տեսակների Subject կան RxJS-ում։
Տետրիսի կերպարները հերթականությամբ ուղղահայեայ ընկնում են: Կերպարները շարժել կամ պտտել հնարավոր չէ - պարզապես գտեք ստացված աշտարակի բարձրությունը: figures-ի անկումը կարգավորվում է 1, 2 կամ 3 թվերով զանգվածով: figures-ը ցույց է տրված ստորև: findHeight([1,2,3]) => 7 findHeight([1,1,1,1]) => 12
Կատարեք memoize ֆունկցիան, որը պահպանում է ֆունկցիայի կանչի արդյունքը նույն արգումենտների համար ( primitives ), և ավելացրեք clearCache մեթոդը cache- ը մաքուրացնելու համար։
Ի՞նչ կլինի, եթե դասի փոխարեն օգտագործենք սովորական օբյեկտ նույն մեթոդներով (առանց խիստ ռեժիմի):
Դուք պետք է գրեք TypeScript տիպ, որը համապատասխանում է ինչպես թիվ վերադարձնող ֆունկցիային, այնպես էլ տող վերադարձնող ֆունկցիային (գեներիկի միջոցով), բայց չի կարող անցնել, եթե վերադարձվող տիպերը տարբեր են։
Իրականացրեք ձեր սեփական Event Emitter-ը՝ բաժանորդագրման, չեղարկման և իրադարձություն ստեղծելու մեթոդներով (on, off, emit): Պահպանեք իրադարձությունների մշակողներին, ստուգեք նրանց աշխատանքը փորձնական տվյալներով և աջակցեք մեթոդների շղթայական կանչերին։
Partial<Delivery>-ի հիման վրա ստեղծեք նոր տիպ, որը ներառում է միայն name և address դաշտերը: Որ օգտակար տիպն է դրա համար հարմար?
TypeScript-ի առաջադրանքի երկրորդ մասը՝ փոխակերպել բոլոր դաշտերը Delivery տիպի օբյեկտից՝ օգտագործելով TypeScript-ի օգտակար տիպերը։