I think the problem in this specific case is tied to using forwardRef. Will try to find out in more detail , but I think forwardRef drops any default props.
Hrm. Removing isRequired and the defaultProps removes the TS error also. Even adding in React.FC<Props> it still works without isRequired. I think I've narrowed it down to incorporating forwardRef, as soon as that is added it seems to lose it's connection to the given prop value and default props codesandbox.io/s/nostalgic-pascal-...
You have no idea how long I've been ignoring narrowing down THAT problem! I've been looking at everything else except that. And finding that out, just lead me to this :D github.com/facebook/flow/issues/74...
Thank you soooo much! You've been a life saver!
It turns out that forwardRef was just another one of the issues. If you add a method to the name prop like name.toUpperCase() TS will argue that the value can be null even when you give it the default value and it doesn't complain when implementing <DisplayName />. This describes the issue in stateless functions with defaultProps. It doesn't look like this has really been solved. github.com/microsoft/TypeScript/is...
Hotell's solution does work thought codesandbox.io/s/fast-pond-lhno0
I think the problem in this specific case is tied to using
forwardRef
. Will try to find out in more detail , but I think forwardRef drops any default props.Hrm. Removing
isRequired
and the defaultProps removes the TS error also. Even adding inReact.FC<Props>
it still works withoutisRequired
. I think I've narrowed it down to incorporatingforwardRef
, as soon as that is added it seems to lose it's connection to the given prop value and default props codesandbox.io/s/nostalgic-pascal-...Yes, I think the problem is within
forwardRef
in this case. It drops thedefaultProps
.You have no idea how long I've been ignoring narrowing down THAT problem! I've been looking at everything else except that. And finding that out, just lead me to this :D github.com/facebook/flow/issues/74...
Thank you soooo much! You've been a life saver!
It turns out that
forwardRef
was just another one of the issues. If you add a method to thename
prop likename.toUpperCase()
TS will argue that the value can be null even when you give it the default value and it doesn't complain when implementing<DisplayName />
. This describes the issue in stateless functions with defaultProps. It doesn't look like this has really been solved. github.com/microsoft/TypeScript/is...Hotell's solution does work thought codesandbox.io/s/fast-pond-lhno0
Thanks for the clarification!