I have a ListComponent. When an item is clicked in ListComponent, the details of that item should be shown in DetailComponent. Both are on the screen at the same time, so
One way to do this is using a shared service.
However I find the following solution much simpler, it allows to share data between 2 siblings.(I tested this only on Angular 5)
In you parent component template:
app-sibling2.component.ts
import { AppSibling1Component } from '../app-sibling1/app-sibling1.component';
...
export class AppSibling2Component {
...
@Input() data: AppSibling1Component;
...
}