Use generics to specify type of return value

I have this method on an Angular service:

 getFromSyncStorage(key: string): Promise {
    return new Promise(function (resolve, reject) {
      chrome.storage.sync.get(key, function (v: Object) {
        if (chrome.runtime.lastError) {
          return reject(chrome.runtime.lastError);
        }
        resolve(v && v[key]);
      });
    });
  }

note that LastErrorType is

export type LastErrorType = typeof chrome.runtime.lastError;

here is the problem, sometimes I pass a key, and I know the “return” type will be an array, for example:

getAllRunHistory() {
    return this.cds.getFromSyncStorage('my-special-key');
}

but if I do this:

getAllRunHistory() : Promise>{
    return this.cds.getFromSyncStorage('my-special-key');
}

tsc will complain and say that the return type is not assignable to Promise>.

how can I use generics, so that this general-purpose getFromSyncStorage method can be typed properly?