{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveX/RxJS/issues/909","labels_url":"https://api.github.com/repos/ReactiveX/RxJS/issues/909/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveX/RxJS/issues/909/comments","events_url":"https://api.github.com/repos/ReactiveX/RxJS/issues/909/events","html_url":"https://github.com/ReactiveX/RxJS/pull/909","id":120721384,"number":909,"title":"Proposal : remove circular reference using ambient merge","user":{"login":"kwonoj","id":1210596,"avatar_url":"https://avatars.githubusercontent.com/u/1210596?v=3","gravatar_id":"","url":"https://api.github.com/users/kwonoj","html_url":"https://github.com/kwonoj","followers_url":"https://api.github.com/users/kwonoj/followers","following_url":"https://api.github.com/users/kwonoj/following{/other_user}","gists_url":"https://api.github.com/users/kwonoj/gists{/gist_id}","starred_url":"https://api.github.com/users/kwonoj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kwonoj/subscriptions","organizations_url":"https://api.github.com/users/kwonoj/orgs","repos_url":"https://api.github.com/users/kwonoj/repos","events_url":"https://api.github.com/users/kwonoj/events{/privacy}","received_events_url":"https://api.github.com/users/kwonoj/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-12-07T08:16:21Z","updated_at":"2015-12-08T01:14:48Z","closed_at":"2015-12-08T01:14:37Z","pull_request":{"url":"https://api.github.com/repos/ReactiveX/RxJS/pulls/909","html_url":"https://github.com/ReactiveX/RxJS/pull/909","diff_url":"https://github.com/ReactiveX/RxJS/pull/909.diff","patch_url":"https://github.com/ReactiveX/RxJS/pull/909.patch"},"body":"### Proposal : not to be merged yet\r\n\r\nThis PR is proposal to resolve https://github.com/ReactiveX/RxJS/issues/899, via ambient declaration merging introduced in typescript (https://github.com/Microsoft/TypeScript/issues/3332).\r\n\r\nIn this PR, for any parents requires to have declaration of inherited childs, it imports ambient declarations instead of actual implementation of child to remove circular dependencies. Since reference to child from parents is mostly for type declaration only, this doesn't affect actual functionality in general.\r\n\r\nStill for some cases functionality's breaking, such as this PR regresses https://github.com/ReactiveX/RxJS/pull/863 due to failed to check type of `Subject` since ambient declaration doesn't allow type checking. Yet this is proposal, PR does not include those refactoring but only include necessary changes."},"comment":{"url":"https://api.github.com/repos/ReactiveX/RxJS/issues/comments/162723297","html_url":"https://github.com/ReactiveX/RxJS/pull/909#issuecomment-162723297","issue_url":"https://api.github.com/repos/ReactiveX/RxJS/issues/909","id":162723297,"user":{"login":"blesh","id":1540597,"avatar_url":"https://avatars.githubusercontent.com/u/1540597?v=3","gravatar_id":"","url":"https://api.github.com/users/blesh","html_url":"https://github.com/blesh","followers_url":"https://api.github.com/users/blesh/followers","following_url":"https://api.github.com/users/blesh/following{/other_user}","gists_url":"https://api.github.com/users/blesh/gists{/gist_id}","starred_url":"https://api.github.com/users/blesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blesh/subscriptions","organizations_url":"https://api.github.com/users/blesh/orgs","repos_url":"https://api.github.com/users/blesh/repos","events_url":"https://api.github.com/users/blesh/events{/privacy}","received_events_url":"https://api.github.com/users/blesh/received_events","type":"User","site_admin":false},"created_at":"2015-12-08T01:14:47Z","updated_at":"2015-12-08T01:14:47Z","body":"Thanks again, @kwonoj "}}