The tap operator is one of my favorite and most used features of RxJs. So today, I’m going to highlight three different and handy use cases of the tap operator.

Debugging by logging what is going on in a data stream

This is one of the easiest ways to visualize what is happening within a pipe of observable streams.


Dark themes have gained a lot of popularity over the past few years, and these days every primary website has a dark theme option.

While there are many different options to implement a dark theme with CSS, this post will focus on one of the most straightforward implementations, using modern…


You’re probably familiar with dependency injection using classes, but what about using strings, numbers, booleans, or any other object?

“Classic” dependency injection with classes/services

The nominal case of dependency injection in Angular uses injectable classes that are often called services.

Such implementation relies on having an injectable class defined like this:


The Angular TestBed gives us access to the DOM generated by a component through its ComponentFixture class, specifically its debugElement property.

This is a great feature because instead of just testing our Typescript code, we can test the rendered HTML user interface, which is what components are all about.

This…


Every six months, a new major version of the Angular framework is released to the public. Angular 12 is the latest iteration released in May 2021. Let’s take a look at the different changes and improvements made to Angular with this latest version.

CSS improvements: Sass and Tailwind!

Sass can now be used inline in…


Sometimes, we need to load some information upfront, right from the time our application starts. We want to make sure that such information is available synchronously right from the beginning and then for the application's entire life cycle.

For instance, we might need to load environment variables from a server…


In this tutorial, we will see how to debug Angular applications without using any breakpoints and without using console.log.

Instead, we will look at debugging features introduced with Angular 9 under the ng namespace variable, which is automatically available in development mode but not exposed when the application is running…


Typescript is a language that constantly involves and brings useful new features to the table. In this post, we’re going to take a look at five tips & tricks that can be used daily while working with Typescript.

Note that those tips don’t just apply to Angular and could be…


A video controlled programmatically with two buttons.

As developers, we tend to think about using either components or services when we work with Angular. In many cases, though, using template reference variables or directives is a great way to solve problems.

Let’s look at different examples where we want to control some advanced HTML5 controls, such as…


In this post, we will explore how to use the Angular CDK (Component Development Kit) to create an overlay that renders some content on top of other content.

The Angular CDK is a library built by the Angular Material team at Google. That said, the CDK itself is independent of…

Alain Chautard

Google Developer Expert in Angular, Consultant and Trainer at http://www.angulartraining.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store