You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In resolveCallExpression, there's a big ol' comment with some context ("When a call to a generic function").
We have this thing called the anyFunctionType, which signals that we are trying to defer inferring from contextually-sensitive function expressions.
We have situations like the following:
outer(..., ...,inner(x=> ...), ...);
inner could have a type like <T>(x: T) => T
We need to defer the call to inner for the same reason, but we need some sort of marker type like anyFunctionType that isn't technically a function type.
It's extremely subtle, but there were issues in Ramda where this occurred.
The non-inferrable type
#30856
In
resolveCallExpression
, there's a big ol' comment with some context ("When a call to a generic function").We have this thing called the
anyFunctionType
, which signals that we are trying to defer inferring from contextually-sensitive function expressions.We have situations like the following:
inner
could have a type like<T>(x: T) => T
inner
for the same reason, but we need some sort of marker type likeanyFunctionType
that isn't technically a function type.Causes some breaks other breaks on DT.
On the whole, this is a specialization of work where we were previously using a
silentNeverType
.Excess property checking when relating to intersections and unions
#30853
{ a, b, c, d }
object literal to{ a, b } | { c, d }
, it's plausible{ a, b, c, d, e }
though.SomeOptions | object
.SomeOptions | object
being excess-property checked the same asSomeOptions
.{ b, c, d }
to{ a, b } | { b, c }
.Make the
Omit
type stricter#30825
Omit
if it has a constraint?Omit
that is constrained and unconstrained - not entirely clear whether it's just one or the other.T
with no constraint gains an implicit constraint.Omit
in the wild.keyof
onunknown
andnever
#30753
keyof unknown
isnever
.keyof never
is alsonever
.keyof
is contravariant in its bounds with respect to its operand.keyof
onnever
should beunknown
PropertyKey
(a.k.a.keyof any
).keyof never
is nowkeyof any
.keyof keyof never
isn'tnever
.The text was updated successfully, but these errors were encountered: