-
Notifications
You must be signed in to change notification settings - Fork 12.4k
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
Suggestion: CFA, assignment, strict null checks and function scope #17449
Labels
Suggestion
An idea for TypeScript
Too Complex
An issue which adding support for may be too complex for the value it adds
Comments
We could do wider analysis, but I don't know how computationally expensive that would get. I personally do think that a solution in the same vein of #11498 would be more ideal, but we haven't explored that very deeply. |
DanielRosenwasser
added
In Discussion
Not yet reached consensus
Suggestion
An idea for TypeScript
labels
Jul 28, 2017
mhegazy
added
Too Complex
An issue which adding support for may be too complex for the value it adds
and removed
In Discussion
Not yet reached consensus
labels
Nov 20, 2017
As @DanielRosenwasser noted, i do not think we can do the full analysis, where a function body is inlined at the call site for control flow analysis purposes.. #11498 might be a more viable path here. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
Suggestion
An idea for TypeScript
Too Complex
An issue which adding support for may be too complex for the value it adds
TypeScript Version: 2.4.2
Code
Currently, TypeScript resets the type of variables within a function scope, giving the error that the variable is possibly
undefined
, but it can be statically determined that after the function, the outer scope does no re-assignment. So it is possible to determine that there is no re-assignment and thereforefoo
will always be assigned.Related to #9998 (trade-offs in CFA)
Related to #11498 (annotate immediately invoked callbacks)
Expected behavior:
No errors.
Actual behavior:
Object is possibly 'undefined'
The text was updated successfully, but these errors were encountered: