title: NGRX reducer does not throw incorrect assignment error
body: <p>I am working with ngrx for the first time. Normally in Typescript I get an incorrect assignment error for the following code because <code>other</code> is not specificed in the interface declaration:</p>
  <pre><code>interface IExample {
    count: number;
  }
  
  let initialState: IExample = { count: 0, other: '??????' };
  
  // Type '{ count: number; other: string; }' is not assignable to type 'IExample'.
  //   Object literal may only specify known properties, and 'other' does not exist in type 'IExample'.
  </code></pre>
  <p>But when I am creating a reducer the <code>on</code> associator <em>(I think this is called an associator)</em> does not throw this exception and maps <code>other</code> onto the return object.</p>
  <pre><code>interface IExample{
    count: number;
  }
  
  let initialState: IExample = { count: 0 };
  
  const reducer = createReducer(
    initialState,
    on(add, (state, { payload }) =&gt; ({ 
      ...state,
      other: '??????' 
    })),
  );
  </code></pre>
  <p>This is the <code>on</code> signature:</p>
  <pre><code>on&lt;State, Creators extends readonly ActionCreator[]&gt;(...args: [any, Creators, any, OnReducer&lt;State extends infer S ? S : never, Creators&gt;]): ReducerTypes&lt;State, Creators&gt;
  </code></pre>
  <p>How do I prevent these sorts of mistakes / how do I get these compilation errors showing again as they should ?</p>
  <p><em>Note: <code>&quot;@ngrx/store&quot;: &quot;^12.3.0&quot;</code>,</em></p>