When building components, defining the interfaces to be used by consumers is often challenging. We...
Great usecase for the transforming @Input properties.
We will have to refactor a huge (and I mean huge) component for a customer in the near future. The consuming teams should not notice any of this. transform could be very useful for this.
When you are developing a UI library (as we are) we want to support the old API for some time and mark is a deprecated. So one would add a second @Input() of type ScheduleEvent[] leave the old API be as Course[] and mark it as deprecated. In the next major version you could then retire the old API.