Typescript tuple of two booleans being inferred as an array of type boolean

Tuples are currently a bit tricky to work with in TypeScript. Array literals might be accidentally inferred to an array type rather than a tuple, which is what happened in this case. The compiler has resolved new BehaviorSubject([false, false]) too eagerly to an object of type BehaviorSubject<boolean[]>, without checking the destination variable's type. This is a known concern and many related issues were posted in the issue tracker (#16391, #15656, and possibly more) and suggestions have been laid to address it (#10195, #16656, ...).

For particular cases where inference fails, you may simply have to resort to casting:

private someBehaviorSubject = new BehaviorSubject([false, false] as [boolean, boolean]);