I'm a TypeScript beginner and I want to learn the basics, the most important things I need to understand.
I don't understand the practical difference between debounce and throttle. I know both limit execution frequency, but I don't know when to use each one in real-world cases.
I have trouble understanding array reduce when I need to change types, from array to object or from object to array in more complex real-world cases.
I don't understand how closures work or what they're for in the real world in a practical way. For me they are mythical creatures.
I don't fully understand the difference between return await, await and return.
I get very confused with the dynamic context of this. I know it changes depending on where it's called, and this drives me a bit crazy.
I struggle with handling errors in promises, especially when chaining multiple async operations. I don't know when to use catch vs then with error callbacks.
I'm confused about event bubbling and capturing. When should I use event delegation? How do I stop events from propagating?