This worked fine until Ember 3.20, starting in Ember 3.24 I got a Assertion Failed: You must pass a function as the fn helpers first argument, you passed undefined
I fixed it using an if block with the component without the @onChange parameter in else. This is a bug?
Depends on how MyComponent is designed. Who is to say who is responsible for optional logic, the use of it or the producer of it?
In my example I made the assumption that @onChange is optional thus the second part of the {{if can be undefined. While in your example it is assumed that @onChange is not optional thus requiring the consumer to provide a noop alternative.
Both are valid options and depends on the architecture of the MyComponent implementation.
The only concrete thing here is that the fn helper requires a function. Thus the need for the noop in the first example. And the assumed not-need in the second.