Welche Optionen der Provider-Konfiguration in Angular kennen Sie: useClass, useExisting, useValue und useFactory? Wann sollten sie angewendet werden?
Frontend
Wie werden wir die Nachrichtenhistorie durchsuchen, wenn sie sehr groß ist? Wie implementieren wir die Paginierung?
Lass die Gewinn-/Verlustmeldung während des Drehens des Trommel verschwinden.
Wenn Sie die Anzahl der Walzen (Stäbe) erhöhen müssen, zum Beispiel auf zehn, wie können Sie die Implementierung flexibel gestalten, um die Werte nicht manuell für jede Walze zu speichern (zum Beispiel über den Parameter numberOfRollers und Array.from)?
Schauen Sie sich den Code mit der Klasse an, die einen Konstruktor mit dem Feld multiplier hat, die Methode add zum Hinzufügen von Zahlen zum Array und die Methode getMultiSum, die über eine normale Funktion implementiert ist. Was wird in der Konsole ausgegeben, wenn dieser Code ausgeführt wird?
Dritter Teil der TypeScript-Aufgabe: Erstellen Sie einen neuen Typ basierend auf dem Typ Delivery, bei dem alle Felder optional sind (können den Wert undefined haben) und ihren Wert nicht ändern können (readonly). Verwenden Sie die Hilfstypen Partial und Readonly.
Wird es korrekt funktionieren, wenn clearCache nicht über eine Callback-Funktion, sondern direkt als Referenz auf die Methode map.clear (z.B. clearCache = cache.clear) übergeben wird? Wie kann man das beheben?
Wie man unnötige Neuberechnungen behebt, sodass beim Klicken auf 'Rerender' nur App neu gerendert wird und beim Texteingeben nur Parent (ohne Child)?
Haben Sie Erfahrung im Schreiben eigener RxJS-Operatoren?
Warum ist es bei der Implementierung von promiseAll notwendig, sich auf den Zähler count zu verlassen, anstatt einfach die Länge des Ergebnisarrays zu überprüfen?
Welche Arten von Subject gibt es in RxJS?
Welche Projekte mussten Sie entwerfen: von Grund auf oder große architektonische Bausteine?
// Es gibt auch 25 Objekte, die // eine private ID und eine Methode zu deren Zuweisung haben // sowie ein Feld für das Erstellungsdatum. // Die ID kann eine Zahl oder eine Zeichenkette enthalten. // Das Erstellungsdatumfeld kann ebenfalls eine Zeichenkette oder eine Zahl enthalten. // Die Typen für Erstellungsdatum und ID stimmen überein (entweder Zeichenkette oder Zahl) // Beschreiben Sie einen Typ für solche Objekte let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // Dieses Objekt darf NICHT dem Typ entsprechen: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
Implementieren Sie Ihren eigenen Event Emitter mit Methoden zum Abonnieren, Abbestellen und Auslösen von Ereignissen (on, off, emit). Speichern Sie die Ereignis-Handler, überprüfen Sie die Funktionalität mit Testdaten und unterstützen Sie verkettete Methodenaufrufe.
Tetris-Figuren fallen vertikal nach unten in sequenzieller Reihenfolge. Die Figuren können nicht bewegt oder gedreht werden - finden Sie einfach die Höhe des resultierenden Turms. Die Fallreihenfolge der Figuren wird durch ein Array aus Zahlen 1, 2 oder 3 bestimmt. Die Figuren sind unten gezeigt. findHeight([1,2,3]) => 7 findHeight([1,1,1,1]) => 12
Sie müssen einen TypeScript-Typ schreiben, der sowohl für eine Funktion geeignet ist, die eine Zahl zurückgibt, als auch für eine Funktion, die einen String zurückgibt (über generische), aber nicht bestehen darf, wenn die Rückgabetypen unterschiedlich sind.
Implementieren Sie die Funktion memoize, die das Ergebnis des Funktionsaufrufs für gleiche Argumente (Primitiven) zwischenspeichert, und fügen Sie die Methode clearCache zum Leeren des Caches hinzu.
Basierend auf Partial<Delivery> erstellen Sie einen neuen Typ, der nur die Felder name und address enthält. Welcher Hilfstyp ist dafür geeignet?
Was ist der Unterschied zwischen Observable und Promise bei mehreren Abonnements/Handler: Wie viele Anfragen und console.log werden ausgeführt?
Zweiter Teil der TypeScript-Aufgabe: Wandeln Sie alle Felder des Objekts vom Typ Delivery in einen neuen Typ um, unter Verwendung der TypeScript-Utility-Typen.