title: Return expression type Promise<T> is not assignable to a type Promise<T>?
body: <p>When I add the javascript doc for the below function, it will give me a warning saying that </p>
  
  <pre><code>Return expression type Promise&lt;T&gt; is not assignable to a type Promise&lt;T&gt; 
  </code></pre>
  
  <p>Is there anything wrong using the return defer.promise below or do I put the return statement in a wrong place?</p>
  
  <pre><code>   /**
       * 
       * @param zname
       * @returns {Promise&lt;T&gt;}
       */
      this.setInfoFromAPI = function (name) {
          var defer = protractor.promise.defer();
          var controlFlow = protractor.promise.controlFlow();
          httpRequestUtility.getRestfulAPIToken().then(function (accessToken) {
              console.log("Access Token is " + accessToken);
              controlFlow.wait(
                  getInfoFromAPI(accessToken, name).then(function (returnData) {
                      if (String(returnData).match(httpStatusCodeClientErrorRegx)) {
                          defer.reject('Get Request Error for Zone Info\nResponse Error Code - ' + returnData);
                      } else {
                          setUpInfoFromAPI(returnData);
                          defer.fulfill();
                      }
                  }), 60000, 'Get Information').then(function () {
              })
          });
          return defer.promise;
      };
  </code></pre>