title: Observable<void> usage pattern in Typescript
body: <p>When an async service has no return value but I want to use Observables I'm inclined to use <code>Observable&lt;boolean&gt;</code>. But I don't have meaning for this boolean value because the service either fails or succeeds and if it fails I want the Observable to be in the error state. This leaves only 'true' values for the observed boolean.</p>
  
  <p>Is the following use of <code>Observable&lt;void&gt;</code> a good pattern for these situations? Or are there foreseeable problems with the use of <code>Observable&lt;void&gt;</code></p>
  
  <pre><code>const asyncFuncWithoutResult = (): Observable&lt;void&gt; =&gt; {
    // fake something async that has no return value
  
    const itWorked = true; // or not
    if (itWorked) {
      return Observable.of();
    } else {
      return Observable.throw(Error('It did not work'));
    }
  }
  
  // call the service
  asyncFuncWithoutResult()
    .subscribe(
      undefined, // nothing will be emitted when using Observable.of()
      (err: any) =&gt; console.error(err), // handle error state
      () =&gt; console.log('Success'),     // handle success state
    );
  </code></pre>