Hilfe bei Vorstellungsgesprächen
Vorbereitung auf Vorstellungsgespräche
Lebenslauf
Jobsuche
Ressourcen
Abonnement
DE
Telegram
Anmelden
Menü öffnen
Hilfe bei Vorstellungsgesprächen
KI-Assistent
Browser-Erweiterung
Ressourcen
Herunterladen
FAQ / Hilfe
Vorbereitung auf Vorstellungsgespräche
Fragenbank
Interviewbank
Scheininterviews
Mentoren
Ressourcen
FAQ / Hilfe
Jobsuche
Automatisierung der Jobsuche
Marktanalyse
Jobs aus Telegram
Ressourcen
Karriere
Blog
FAQ / Dokumentation
Telegram Blog
Telegram Unterstützung
Legal
Rückerstattung
Bedingungen
Privatsphäre
Rechteinhaber
Zurück zu den Fragen
Fragenbank
Node.js - Entwickler
Frage
Senior
Finde den Fehler · TypeScript Hinterhältige Fehler Jede dieser acht Code-Snippets kompiliert, besteht eine ungeprüfte Überprüfung und sieht in Ordnung aus. Jedes verbirgt einen Fehler. Für jedes: Sag uns, was kaputt geht, unter welchen Bedingungen — und wie du es erkennen würdest. Denk laut nach. Wir sind interessiert daran, wie du Code liest, nicht an einer Stoppuhr. Es ist nicht notwendig, alles richtig zu machen. 01 Bestellung aufgeben interface Notifier { send(to: string, message: string): Promise<void> } class OrderService { constructor(private readonly notifier: Notifier) {} async placeOrder(order: Order): Promise<OrderId> { const id = await this.repo.save(order) this.notifier.send(order.customerEmail, `Order ${id} bestätigt`) return id } } 02 Profil aktualisieren app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('Profilaktualisierung fehlgeschlagen', err) } res.status(200).json({ status: 'gespeichert' }) }) 03 Kommentar löschen app.delete('/comments/:id', requireAuth, async (req, res) => { const comment = await db.comments.findById(req.params.id) if (!comment) { return res.status(404).end() } await db.comments.delete(comment.id) res.status(204).end() }) 04 Liste paginieren function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // aufrufer const results = paginate(rows, page, 20) // Seite beginnt bei 1 im UI 05 Artikel mit Autoren laden async function loadArticlesWithAuthors(): Promise<ArticleView[]> { const articles = await db.query('SELECT * FROM articles WHERE published = true') const views: ArticleView[] = [] for (const article of articles) { const author = await db.query('SELECT * FROM users WHERE id = $1', [article.authorId]) views.push({ ...article, author: author[0] }) } return views } 06 Standardwerte auflösen interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Anonym', } } 07 Rabatt-Helfer testen function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('wendet einen Rabatt an', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 Top-Scores berechnen function topScores(scores: number[], take = 3): number[] { return scores.sort((a, b) => b - a).slice(0, take) } const results = [4, 1, 9, 2] const podium = topScores(results) // ... später, anderswo: renderRawResults(results) // erwartet [4, 1, 9, 2]
Als abgeschlossen markieren
Zurück
Als nächstes