As far as I can tell, regardless of whether the stream is typed to allow undefined or not, `async` always expands the type to include undefined and null.
I am not sure what might be possible here. I do believe that matching the async type to the stream type would be best, but if that is not possible, then I feel that `T | undefined` is better that `T | null` for `AsyncPipe` return type, ultimately it is the narrower type in the end.
I honestly cannot speak to I internal implementation factors here...I don't know what restrictions other angular code may impose here. All I do know, is all my components with inputs are now completely polluted with nulls I don't want and are not appropriate, and as a result I have lost some of the benefits of typescript strict mode.