Solution
RxJS 5.4.2 should now work perfectly with TypeScript 2.4.1. Simply upgrade to 5.4.2+ if possible.
npm install --save rxjs@^5.4.2
Then try restarting your editor and/or recompile if you don’t see an immediate change.
If not, the below solution should work.
Why it’s happening
TypeScript 2.4 has a strictness change, and Subject<T> isn’t lifting to the correct Observable. The signature really should have been
<R>(operator: Operator<T, R>) => Observable<R>
This will be fixed in RxJS 6.
Alternative Solution
Newer versions of RxJS will have this fixed, but as a temporary workaround, you can use the noStrictGenericChecks compiler option.
In tsconfig.json, put it in "compilerOptions" and set it to true.
{
"compilerOptions": {
"noStrictGenericChecks": true
}
}
On the command line it’s --noStrictGenericChecks.