Kokias Angular tiekėjo konfigūracijos parinktis žinote: useClass, useExisting, useValue ir useFactory? Kada jas naudoti?
Frontend
Kaip peržiūrėsime žinučių istoriją, jei ji labai didelė? Kaip įgyvendinti puslapiavimą?
Užtikrinkite, kad per būgno sukimąsi džiaugsmo/neigimo pranešimas išnyktų.
Jei reikia padidinti rulonų (barabanų) skaičių, pavyzdžiui, iki dešimties, kaip padaryti įgyvendinimą lankstesnį, kad nereikėtų rankiniu būdu saugoti reikšmių kiekvienam rulonui (pavyzdžiui, per parametrą numberOfRollers ir Array.from)?
Pažiūrėkite į klasės kodą, kurio konstruktoriuje yra laukas multiplier, metodas add, skirtas pridėti skaičius į masyvą, ir metodas getMultiSum, įgyvendintas per įprastą funkciją. Kas bus išvestas į konsolę paleidus šį kodą?
TypeScript užduoties trečioji dalis: sukurkite naują tipą, pagrįstą Delivery tipu, kuriame visi laukai yra pasirenkami (gali turėti reikšmę undefined) ir negali keisti savo reikšmės (readonly). Naudokite pagalbinius tipus Partial ir Readonly.
Ar teisingai veiks, jei clearCache perduosite ne kaip callback, o kaip tiesioginę nuorodą į map.clear metodą (pavyzdžiui, clearCache = cache.clear)? Kaip tai galima ištaisyti?
Kaip ištaisyti perteklinius perpiešimus, kad paspaudus 'Rerender' būtų perpiešta tik App, o įvedus tekstą — tik Parent (be Child)?
Ar turite patirties rašant savo RxJS operatorius?
Kodėl promiseAll įgyvendinimo metu reikia pasikliauti skaitikliu count, o ne tik patikrinti rezultatų masyvo ilgį?
Kokie Subject tipai egzistuoja RxJS?
Kokius projektus reikėjo projektuoti: nuo nulio ar didelius architektūrinius blokus?
// Taip pat yra 25 objektai, kurie // turi privačią identifikatorių ir metodą jam priskirti // taip pat datos kūrimo lauką. // Identifikatorius gali būti skaičius arba eilutė. // Datos kūrimo laukas taip pat gali būti eilutė arba skaičius. // Datos kūrimo ir identifikatoriaus tipai sutampa (arba eilutė, arba skaičius) // Aprašykite tokio objekto tipą let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // šis objektas NETURI atitikti tipo: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
Įgyvendinkite savo paties Event Emitter su prenumeratos, atšaukimo ir įvykių generavimo (on, off, emit) metodais. Laikykite įvykių tvarkytojus, patikrinkite jų veikimą su testiniais duomenimis ir palaikykite metodų grandininį kvietimą.
Tetris figūros krinta vertikaliai žemyn seka. Figūros negali būti judinamos ar sukamamos - tiesiog raskite gautos bokšto aukštį. Figūrų kritimo tvarka yra nustatyta iš masyvo, sudaryto iš skaičių 1, 2 arba 3. Figūros parodytos žemiau. findHeight([1,2,3]) => 7 findHeight([1,1,1,1]) => 12
Turite parašyti TypeScript tipą, kuris tinka tiek funkcijai, grąžinančiai skaičių, tiek funkcijai, grąžinančiai eilutę (per generiką), bet neturėtų praeiti, jei grąžinamų tipų skirtumai.
Įgyvendinkite memoize funkciją, kuri saugo funkcijos kvietimo rezultatą tomis pačiomis argumentais (primitivais), ir pridėkite clearCache metodą, kad išvalytumėte cache.
Remiantis Partial<Delivery>, sukurkite naują tipą, kuriame būtų tik laukai name ir address. Koks naudingas tipas tam tinka?
Kuo kelių prenumeratų/apdorotojų yra, koks skirtumas tarp Observable ir Promise: kiek užklausų ir console.log bus įvykdyta?
TypeScript užduoties antroji dalis: konvertuokite visus Delivery tipo objekto laukus į naują tipą, naudodami TypeScript naudingus tipus.