我在 Angular 服务上有这个方法:
getFromSyncStorage(key: string): Promise<Object | LastErrorType> {
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]);
});
});
}
请注意,这LastErrorType
是
export type LastErrorType = typeof chrome.runtime.lastError;
这就是问题所在,有时我传递一个键,我知道“返回”类型将是一个数组,例如:
getAllRunHistory() {
return this.cds.getFromSyncStorage('my-special-key');
}
但如果我这样做:
getAllRunHistory() : Promise<Array<any>>{
return this.cds.getFromSyncStorage('my-special-key');
}
tsc 会抱怨并说返回类型不可分配给Promise<Array<any>>
.
如何使用泛型,以便getFromSyncStorage
可以正确键入此通用方法?