{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveX/rxjs/issues/2362","repository_url":"https://api.github.com/repos/ReactiveX/rxjs","labels_url":"https://api.github.com/repos/ReactiveX/rxjs/issues/2362/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveX/rxjs/issues/2362/comments","events_url":"https://api.github.com/repos/ReactiveX/rxjs/issues/2362/events","html_url":"https://github.com/ReactiveX/rxjs/pull/2362","id":207045312,"number":2362,"title":"refactor(*): strict null checks compiler option","user":{"login":"mpodlasin","id":7916523,"avatar_url":"https://avatars1.githubusercontent.com/u/7916523?v=3","gravatar_id":"","url":"https://api.github.com/users/mpodlasin","html_url":"https://github.com/mpodlasin","followers_url":"https://api.github.com/users/mpodlasin/followers","following_url":"https://api.github.com/users/mpodlasin/following{/other_user}","gists_url":"https://api.github.com/users/mpodlasin/gists{/gist_id}","starred_url":"https://api.github.com/users/mpodlasin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpodlasin/subscriptions","organizations_url":"https://api.github.com/users/mpodlasin/orgs","repos_url":"https://api.github.com/users/mpodlasin/repos","events_url":"https://api.github.com/users/mpodlasin/events{/privacy}","received_events_url":"https://api.github.com/users/mpodlasin/received_events","type":"User","site_admin":false},"labels":[{"id":241316858,"url":"https://api.github.com/repos/ReactiveX/rxjs/labels/PR:%20blocked","name":"PR: blocked","color":"e11d21","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2017-02-12T11:49:34Z","updated_at":"2017-06-17T23:11:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ReactiveX/rxjs/pulls/2362","html_url":"https://github.com/ReactiveX/rxjs/pull/2362","diff_url":"https://github.com/ReactiveX/rxjs/pull/2362.diff","patch_url":"https://github.com/ReactiveX/rxjs/pull/2362.patch"},"body":"Let's make TS compiler even more annoying ;)\r\n\r\nI made it as an experiment to see how much havoc in codebase this option would create. Since it turned out fairly good, I am submitting it for debate.\r\n\r\nSome conclusions:\r\n* `subscribeToResult` returns `null` when it does not recognize `result` as acceptable input. This has consequences in entire codebase. We should decide how operators which accept `ObservableInput` should behave when user passes something that can't be treated as observable.\r\n* Whenever I was unable to justify that some variable is defined but I used `!` non-null assertion operator nevertheless, I left `TODO` comment. Sometimes someone who knows codebase better will be able to provide such justification, but sometimes it will mean that some refactor is needed. \r\n* It is up to debate if `!` operator should be (always/sometimes) accompanied with comment why we can safely use this operator. Some ot them are obvious, like in while loops where we check if an array is non empty and then we `shift` that array.\r\n\r\nCloses: #2066 "},"comment":{"url":"https://api.github.com/repos/ReactiveX/rxjs/issues/comments/309245880","html_url":"https://github.com/ReactiveX/rxjs/pull/2362#issuecomment-309245880","issue_url":"https://api.github.com/repos/ReactiveX/rxjs/issues/2362","id":309245880,"user":{"login":"kwonoj","id":1210596,"avatar_url":"https://avatars1.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},"created_at":"2017-06-17T23:11:28Z","updated_at":"2017-06-17T23:11:28Z","body":">  I feel it would not be a problem if this pull request does not change a part of testcase.\r\n\r\nNo, our test case doesn't fully verify type definition of our codebase. We already experienced regression after publishing release breaks type which test cases couldn't caught it."}}
{"actor":{"display_login":"kwonoj"}}