Jakie opcje konfiguracji dostawcy Angular znasz: useClass, useExisting, useValue i useFactory? Kiedy ich używać?
Frontend
Jak będziemy przeglądać historię wiadomości, jeśli jest bardzo duża? Jak zaimplementować paginację?
Niech wiadomość o zwycięstwie/porażce znika podczas obracania bębna.
Jeśli trzeba zwiększyć liczbę rolek (wałków), na przykład do dziesięciu, jak uczynić implementację elastyczną, aby nie przechowywać wartości ręcznie dla każdego wałka (np. przez parametr numberOfRollers i Array.from)?
Zobacz kod z klasą, która ma konstruktor z polem multiplier, metodę add do dodawania liczb do tablicy i metodę getMultiSum, zaimplementowaną za pomocą zwykłej funkcji. Co zostanie wyświetlone w konsoli podczas uruchamiania tego kodu?
Trzecia część zadania z TypeScript: utwórz nowy typ na podstawie typu Delivery, w którym wszystkie pola są opcjonalne (mogą mieć wartość undefined) i nie mogą zmieniać swojej wartości (readonly). Użyj typów pomocniczych Partial i Readonly.
Czy to będzie działać poprawnie, jeśli przekażesz clearCache nie przez callback, a jako bezpośredni odwołanie do metody map.clear (np. clearCache = cache.clear)? Jak to naprawić?
Jak naprawić nadmierne ponowne renderowania, aby po kliknięciu 'Rerender' renderował się tylko App, a podczas wpisywania tekstu tylko Parent (bez Child)?
Czy masz doświadczenie w pisaniu własnych operatorów RxJS?
Dlaczego w implementacji promiseAll trzeba polegać na liczniku count, a nie po prostu sprawdzać długość tablicy wyników?
Jakie rodzaje Subjectów istnieją w RxJS?
Jakie projekty musiałeś projektować: od zera czy duże bloki architektoniczne?
// Istnieje również 25 obiektów, które // mają prywatny identyfikator i metodę jego przypisania // oraz pole daty utworzenia. // Identyfikator może zawierać liczbę lub ciąg znaków. // Pole daty utworzenia również może zawierać ciąg znaków lub liczbę. // Typy dla daty utworzenia i identyfikatora są zgodne (lub ciąg, lub liczba) // Opisz typ dla takich obiektów let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // ten obiekt NIE powinien odpowiadać typowi: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
Zaimplementuj własny Event Emitter z metodami subskrypcji, odsubskrypcji i generowania zdarzeń (on, off, emit). Przechowuj obsługiwacze zdarzeń, sprawdź ich działanie na danych testowych i obsługuj wywołania metod w łańcuchu.
Figurki Tetris spadają pionowo w kolejności sekwencyjnej. Figury nie mogą być przesuwane ani obracane - po prostu znajdź wysokość powstałej wieży. Kolejność spadania figur jest określona przez tablicę z liczbami 1, 2 lub 3. Figurki są pokazane poniżej. findHeight([1,2,3]) => 7 findHeight([1,1,1,1]) => 12
Musisz napisać typ TypeScript, który będzie pasował zarówno do funkcji zwracającej liczbę, jak i do funkcji zwracającej string (przez generyk), ale nie powinien przejść, jeśli typy zwracanych wartości są różne.
Zaimplementuj funkcję memoize, która buforuje wynik wywołania funkcji dla tych samych argumentów (prymitywów), oraz dodaj metodę clearCache do wyczyszczenia pamięci podręcznej.
Na podstawie Partial<Delivery> stwórz nowy typ zawierający tylko pola name i address. Jaki typ pomocniczy jest do tego odpowiedni?
Jaka jest różnica między Observable a Promise przy wielu subskrypcjach/obsługach: ile zapytań i logów console.log zostanie wykonanych?
Druga część zadania z TypeScript: przekształć wszystkie pola obiektu typu Delivery na nowy typ, korzystając z typów narzędziowych TypeScript.