Ce opțiuni de configurare a provider-ului Angular cunoști: useClass, useExisting, useValue și useFactory? Când trebuie să le folosești?
Frontend
Cum vom vizualiza istoricul mesajelor dacă este foarte mare? Cum implementăm paginarea?
Asigură-te că mesajul de victorie/înfrângere dispare în timpul rotirii tamburului.
Dacă trebuie să crești numărul de role (barele), de exemplu până la zece, cum faci implementarea flexibilă pentru a nu stoca valorile manual pentru fiecare role (de exemplu, prin parametrul numberOfRollers și Array.from)?
Uitați codul cu clasa care are un constructor cu câmpul multiplier, metoda add pentru adăugarea numerelor în array și metoda getMultiSum, implementată printr-o funcție obișnuită. Ce va fi afișat în consolă la rularea acestui cod?
Partea a treia a sarcinii de TypeScript: creează un nou tip bazat pe tipul Delivery, în care toate câmpurile sunt opționale (pot avea valoarea undefined) și nu pot schimba valoarea lor (readonly). Folosește tipurile utilitare Partial și Readonly.
Va funcționa corect dacă se transmite clearCache nu printr-un callback, ci ca o referință directă la metoda map.clear (de exemplu, clearCache = cache.clear)? Cum se poate remedia acest lucru?
Cum să corectați re-renderizările excesive astfel încât, la clic pe 'Rerender', să fie re-renderizat doar App, iar la introducerea textului, doar Parent (fără Child)?
Aveți experiență în scrierea propriilor operatori RxJS?
De ce în implementarea promiseAll trebuie să ne bazăm pe contorul count în loc să verificăm pur și simplu lungimea array-ului de rezultate?
Ce tipuri de Subject există în RxJS?
Ce proiecte a fost nevoie să proiectați — de la zero sau blocuri arhitecturale mari?
// Există, de asemenea, 25 de obiecte care // au un identificator privat și o metodă pentru atribuirea acestuia // precum și un câmp pentru data creării. // Identificatorul poate conține un număr sau un șir de caractere. // Câmpul pentru data creării poate conține, de asemenea, un șir sau un număr. // Tipurile pentru data creării și identificator sunt compatibile (sau șir, sau număr) // Descrieți un tip pentru astfel de obiecte let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // acest obiect NU trebuie să corespundă tipului: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
Implementați propriul emitator de evenimente cu metode de abonare, dezabonare și generare de evenimente (on, off, emit). Păstrați handlerii de evenimente, verificați funcționarea acestora pe date de test și sprijiniți apelurile în lanț ale metodelor.
Figurinele de Tetris cad în mod secvențial vertical în jos. Figurile nu pot fi mutate sau rotite - găsiți pur și simplu înălțimea turnului rezultat. Ordinea de cădere a figurilor este determinată de un array de numere 1, 2 sau 3. Figurile sunt prezentate mai jos. findHeight([1,2,3]) => 7 findHeight([1,1,1,1]) => 12
Trebuie să scrii un tip TypeScript care să fie potrivit atât pentru o funcție care returnează un număr, cât și pentru o funcție care returnează un șir (prin generic), dar nu trebuie să treacă dacă tipurile de returnare sunt diferite.
Pe baza lui Partial<Delivery>, creează un nou tip care include doar câmpurile name și address. Care tip utilitar este potrivit pentru asta?
Care este diferența dintre Observable și Promise atunci când există mai multe abonări/handleri: câte solicitări și console.log vor fi executate?
Implementați funcția memoize, care stochează în cache rezultatul apelului funcției pentru argumente identice (primitivi), și adăugați metoda clearCache pentru a goli cache-ul.
A doua parte a sarcinii de TypeScript: transformați toate câmpurile obiectului de tip Delivery într-un nou tip, folosind tipurile utilitare ale TypeScript.