GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||
GeezerVison is showing github.com — Instantiate this for contextually typed type parameters by sandersn · Pull Request #9746 · microsoft/TypeScript Conversation
Member
Fixes #9673 Previously This doesn't look right, though. The instantiation code is Anders Hejlsberg (@ahejlsberg) or Mohamed Hegazy (@mhegazy) any ideas on how to do this right? I thought about creating a new signature with the correct target/mapper setup, but I'm not sure how to make sure it gets used in place of the original one.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Member
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I had to save this block for contextually-typed object literals like this: interface CI { m: number method(this: this, n: number); } let o: CI = { m: 12, method(n) { return this.m + n; } }
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Based on our in-person discussion, I checked on contextual typing for parameters. It's 1 of 9 cases in const type = declaration.symbol.name === "this" ? getContextuallyTypedThisType(func) : getContextuallyTypedParameterType(<ParameterDeclaration>declaration); The contextual typing for an undeclared
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think a better name would be
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Member
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Nathan Shively-Sanders (sandersn)
deleted the
instantiate-this-for-contextually-typed-type-parameters
branch
Nathan Shively-Sanders (sandersn)
added a commit
that referenced
this pull request
This essentially undoes #9746, which only contextually typed object literal methods, but did so early, during `getSignatureFromDeclaration`. The compiler now contextually types everything, as it did before, but only looks for a contextual type if there is no declared `this` type. After #9746, a member list request from the language service would call `getSignatureFromDeclaration`, but it would never get a contextual this-type, because contextual typing was only enabled for object literal methods.
Nathan Shively-Sanders (sandersn)
added a commit
that referenced
this pull request
This essentially undoes #9746, which only contextually typed object literal methods, but did so early, during `getSignatureFromDeclaration`. The compiler now contextually types everything, as it did before, but only looks for a contextual type if there is no declared `this` type. After #9746, a member list request from the language service would call `getSignatureFromDeclaration`, but it would never get a contextual this-type, because contextual typing was only enabled for object literal methods.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
ReviewersNo reviewsUh oh!
There was an error while loading. Please reload this page. AssigneesNo one assignedLabels
None yet
ProjectsMilestoneNo milestoneDevelopmentSuccessfully merging this pull request may close these issues. Type inference error with generics and function 'this' typingUh oh!
There was an error while loading. Please reload this page. Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later. | ||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |