title: Typescript - ... has no compatible call signatures
body: <p>i get the no compatible call signatures error and dont know what to do to make it work.</p>
  
  <p>React-State</p>
  
  <pre><code>     this.state = {
      categoryState: ...,
      categoryItemId
      }
  </code></pre>
  
  <p>Category declaration</p>
  
  <pre><code>let category: Cat1[] | Cat2[] | Cat3[] = this.getCategory();
  </code></pre>
  
  <p>getMethod to return category</p>
  
  <pre><code>private getCategory() {
          switch (this.state.categoryState) {
              case "Cat1": {
                  return this.props.cat1 as Cat1[];
              }
              case "EVENT": {
                  return this.props.cat2 as Cat2[];
              }
              default: {
                  return this.props.cat3 as Cat3[];
              }
          }
      }
  </code></pre>
  
  <p>return-Method (react) this is where the error happens:</p>
  
  <pre><code>&lt;select value={this.state.categoryItemID} onChange={this.handleSomething}&gt;
                                  {(category &amp;&amp; category.length &gt; 0) &amp;&amp;
                                  category.map((item: any) =&gt; {
                                      return (
                                          &lt;option value={item.id}
                                                  key={item.id}&gt;{item.localizations[this.props.currentLanguage].title}&lt;/option&gt;
                                      );
                                  })
                                  }
                              &lt;/select&gt;
  </code></pre>
  
  <p>error message: 
  TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((callbackfn: (value: Cat1, index: number, array: Cat1[]) => U, thisArg?: any) => U[] |...' has no compatible call signatures.</p>