{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/19383","repository_url":"https://api.github.com/repos/Microsoft/TypeScript","labels_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/19383/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/19383/comments","events_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/19383/events","html_url":"https://github.com/Microsoft/TypeScript/issues/19383","id":267288414,"number":19383,"title":"Feature request: inference meta-analysis graph data","user":{"login":"axefrog","id":298883,"avatar_url":"https://avatars2.githubusercontent.com/u/298883?v=4","gravatar_id":"","url":"https://api.github.com/users/axefrog","html_url":"https://github.com/axefrog","followers_url":"https://api.github.com/users/axefrog/followers","following_url":"https://api.github.com/users/axefrog/following{/other_user}","gists_url":"https://api.github.com/users/axefrog/gists{/gist_id}","starred_url":"https://api.github.com/users/axefrog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/axefrog/subscriptions","organizations_url":"https://api.github.com/users/axefrog/orgs","repos_url":"https://api.github.com/users/axefrog/repos","events_url":"https://api.github.com/users/axefrog/events{/privacy}","received_events_url":"https://api.github.com/users/axefrog/received_events","type":"User","site_admin":false},"labels":[{"id":113971304,"url":"https://api.github.com/repos/Microsoft/TypeScript/labels/Needs%20More%20Info","name":"Needs More Info","color":"556b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-10-20T19:57:48Z","updated_at":"2017-10-20T21:48:55Z","closed_at":null,"author_association":"NONE","body":"**TypeScript Version:**  2.5.3\r\n\r\nI'm having an awful time trying to figure out why the complex interplay between various generic types and higher-order generic functions is producing certain inference failures, errors and mismatches to what I'm expecting. Beyond a certain level of complexity, trying to follow the trail to determine why TypeScript doesn't like a particular combination of things, or why it's inferring one type over another, becomes really, really frustrating, and I find myself spending more time fighting the type system than actually writing code.\r\n\r\nIs there any way you could implement something that produces some kind of lazy directed graph data that can be explored to determine why TypeScript is making the inferences it is, and where expected inferences are failing? Something like this would not only be a huge help for developers, but would probably cut down on a lot of your support requests too, because people could simply look at the graph and pinpoint exactly where they're going wrong.\r\n\r\nI imagine you'd just produce and update the data as code is modified, and tools and extensions in editors would do the job of visualising it and making it explorable while coding."},"comment":{"url":"https://api.github.com/repos/Microsoft/TypeScript/issues/comments/338330391","html_url":"https://github.com/Microsoft/TypeScript/issues/19383#issuecomment-338330391","issue_url":"https://api.github.com/repos/Microsoft/TypeScript/issues/19383","id":338330391,"user":{"login":"axefrog","id":298883,"avatar_url":"https://avatars2.githubusercontent.com/u/298883?v=4","gravatar_id":"","url":"https://api.github.com/users/axefrog","html_url":"https://github.com/axefrog","followers_url":"https://api.github.com/users/axefrog/followers","following_url":"https://api.github.com/users/axefrog/following{/other_user}","gists_url":"https://api.github.com/users/axefrog/gists{/gist_id}","starred_url":"https://api.github.com/users/axefrog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/axefrog/subscriptions","organizations_url":"https://api.github.com/users/axefrog/orgs","repos_url":"https://api.github.com/users/axefrog/repos","events_url":"https://api.github.com/users/axefrog/events{/privacy}","received_events_url":"https://api.github.com/users/axefrog/received_events","type":"User","site_admin":false},"created_at":"2017-10-20T21:48:55Z","updated_at":"2017-10-20T21:48:55Z","author_association":"NONE","body":"In the original question, I wrote:\r\n\r\n> I imagine you'd just produce and update the data as code is modified, and tools and extensions in editors would do the job of visualising it and making it explorable while coding.\r\n\r\nYou wouldn't display that yourself. You'd make the data available so that extensions and other tools could provide different ways of examining the data.\r\n\r\n> ... It don't think we'd want to print all of that out, so we just give you the error ...\r\n\r\nThe first step is ALWAYS getting the data right. Make the data available, then let the community decide what to do with it."}}
{"actor":{"display_login":"axefrog"}}