2 ms·
Because it shouldn’t in function arguments. The one defining the function should be responsible enough to know what input they want and actually properly type i
by jsjohnst 1y ago
Because it shouldn’t in function arguments. The one defining the function should be responsible enough to know what input they want and actually properly type it. Assuming an int or number type here is wrong (it could be optional int for example).
- hk__2 1y agoIn TypeScript arguments with a default value "inherit" the type of that value, unless you explicitely mark it otherwise. I believe this is how Pyright works as well.
- jsjohnst 1y agoBut the type signature of: int -> int Is wrong. At minimum it’s: Optional[int] -> int Because you provided a default value so clearly it’s not required to provide an input parameter. It’s also wrong to assume `0` is an int. There’s other valid types it could be. If the default was say `42`, I’d be pushing back a little less (outside of the Optional part), but this contrived example from GP had 0, which is ambiguous on what the inferred typing must be.