Angular is a framework, that is, it is not a library for handling a single application exigency, but it is a comprehensive library, like jQuery, that supplies everything that is needed to build a complete client application based on TypeScript (or JavaScript). However, unlike jQuery, it is an opinionated framework, that is, it is not just a collection of utilities, but it also enforces the whole application architecture. In short, Angular supplies both a comprehensive set of utilities and a pre-organized application architecture.
An Angular application is comprised of the following building blocks: components, directives, bindings, pipes, services, modules, and routers.
Components were described briefly in the previous section and will be studied in detail in the Modules, components, and data binding section of this chapter. They extend the usual HTML tags...