{"action":"created","issue":{"url":"https://api.github.com/repos/reactjs/redux/issues/1413","repository_url":"https://api.github.com/repos/reactjs/redux","labels_url":"https://api.github.com/repos/reactjs/redux/issues/1413/labels{/name}","comments_url":"https://api.github.com/repos/reactjs/redux/issues/1413/comments","events_url":"https://api.github.com/repos/reactjs/redux/issues/1413/events","html_url":"https://github.com/reactjs/redux/pull/1413","id":134017140,"number":1413,"title":"Add TypeScript definitions","user":{"login":"aikoven","id":857709,"avatar_url":"https://avatars.githubusercontent.com/u/857709?v=3","gravatar_id":"","url":"https://api.github.com/users/aikoven","html_url":"https://github.com/aikoven","followers_url":"https://api.github.com/users/aikoven/followers","following_url":"https://api.github.com/users/aikoven/following{/other_user}","gists_url":"https://api.github.com/users/aikoven/gists{/gist_id}","starred_url":"https://api.github.com/users/aikoven/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aikoven/subscriptions","organizations_url":"https://api.github.com/users/aikoven/orgs","repos_url":"https://api.github.com/users/aikoven/repos","events_url":"https://api.github.com/users/aikoven/events{/privacy}","received_events_url":"https://api.github.com/users/aikoven/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/reactjs/redux/labels/ecosystem","name":"ecosystem","color":"ff69b4"},{"url":"https://api.github.com/repos/reactjs/redux/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":45,"created_at":"2016-02-16T15:49:47Z","updated_at":"2016-02-20T16:53:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/reactjs/redux/pulls/1413","html_url":"https://github.com/reactjs/redux/pull/1413","diff_url":"https://github.com/reactjs/redux/pull/1413.diff","patch_url":"https://github.com/reactjs/redux/pull/1413.patch"},"body":"Original issue: https://github.com/reactjs/redux/issues/1401"},"comment":{"url":"https://api.github.com/repos/reactjs/redux/issues/comments/186650645","html_url":"https://github.com/reactjs/redux/pull/1413#issuecomment-186650645","issue_url":"https://api.github.com/repos/reactjs/redux/issues/1413","id":186650645,"user":{"login":"xogeny","id":1498808,"avatar_url":"https://avatars.githubusercontent.com/u/1498808?v=3","gravatar_id":"","url":"https://api.github.com/users/xogeny","html_url":"https://github.com/xogeny","followers_url":"https://api.github.com/users/xogeny/followers","following_url":"https://api.github.com/users/xogeny/following{/other_user}","gists_url":"https://api.github.com/users/xogeny/gists{/gist_id}","starred_url":"https://api.github.com/users/xogeny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xogeny/subscriptions","organizations_url":"https://api.github.com/users/xogeny/orgs","repos_url":"https://api.github.com/users/xogeny/repos","events_url":"https://api.github.com/users/xogeny/events{/privacy}","received_events_url":"https://api.github.com/users/xogeny/received_events","type":"User","site_admin":false},"created_at":"2016-02-20T16:53:51Z","updated_at":"2016-02-20T16:53:51Z","body":"@ulfryk - But how is it useful.  If you have `<A,B>(action: A): B`, how would you use it.  As far as I can tell, you'd have to do something like `ret = <MyAction,MyReturn>dispatch(action)`.  I think @Pajn's point is then you might as well do `ret = dispatch(action) as MyReturn`.  It is shorter and doesn't complicate the definition of `Dispatch`.  The issue is that `<A,B>(action: A): B` doesn't *enforce* any type safety because you just specify `A` and `B` yourself...nothing gets inferred so there are no real type constraints here.  At least as far as I can see."}}