-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design Meeting Notes, 7/28/2023 #55188
Comments
Hm, I don't recall putting up such a PR 😅 |
@weswigham maybe you put it up? 😄 |
Sounds like I get to break out the |
Heh, you kept the typo. |
In particular, this |
@fatcerberus I fixed it :D @RyanCavanaugh |
Allowing Calls Ending with Unions
#55185
a: number, b: number, c?: number
instead of two signatures.[number, number] | [string, number]
becomes[number, string | number]
.[number, number] | [string, string]
.Covariance breaks when checking for
undefined
in a type#55161
T
s inFoo extends T ? A : B
to figure out variance here.type Setter<T> = undefined extends T ? () => undefined : {};
, we decide thatT
is invariant.U
is invariant intype Test<U> = { 0: Setter<U> };
which is undesirable. Direct structural instantiation will often permit types.T
as unmeasurable (Mark conditional extends as Unmeasurable and use a conditional-opaque wildcard for type erasure #43887)T
inSetter
is marked as a special type of unmeasurable. Instances ofSetter
would be compared in an invariant manner; however, any variance checks for type parameters that are fed intoSetter
(i.e.U
) are marked as unmeasurable.Unreliable
, but not ofUnmeasurable
.Evaluate
alias.The text was updated successfully, but these errors were encountered: