
https://medium.com/@mirokoczka/3-ways-to-communicate-between-angular-components-a1e3f3304ecb
Angular Components Communication is a project designed for developers looking to harness the power of Angular CLI. This established framework allows for streamlined app development with easy-to-use commands that make application management and deployment efficient. Whether you are generating new components or managing builds, Angular CLI offers the tools you need for effective app architecture.
With a robust development environment, developers can enjoy a seamless coding experience. Automatic reloading features ensure that changes are instantly reflected in the application, fostering a more interactive development process. This ensures that even those new to the framework can quickly familiarize themselves with Angular's capabilities.
Development Server: Run ng serve to start a live development server that refreshes automatically when you modify your source files.
Code Scaffolding: Generate components, directives, pipes, services, and more effortlessly using the command ng generate component component-name, streamlining your development process.
Build Setup: Easily compile your project with ng build, with the option to create a production build using the -prod flag for optimized performance.
Unit Testing: Execute your unit tests with ng test using Karma, allowing you to verify that individual pieces of code function as expected.
End-to-End Testing: Run comprehensive end-to-end tests with ng e2e via Protractor to ensure your entire application behaves correctly under real-world conditions.
Helpful Command Reference: Utilize ng help for quick assistance with Angular CLI commands, along with resources available in the Angular CLI README.
Directory Management: All build artifacts are stored neatly in the dist/ directory, keeping your project organized and easy to manage.

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.