簡體   English   中英

打字稿:類型&#39;Promise &lt;{}&gt;&#39;不能分配給&#39;Promise&#39; <void> “

[英]Typescript : Type 'Promise<{}>' is not assignable to type 'Promise<void>'

我有以下功能:

let templateLoader = (onDidFinishLoad : Function, onDidFailLoad : Function) =>
    (url : string) : Promise<void> => 
        new Promise(    
            (resolve,reject) => {
                mainWindow.loadURL(url);
                mainWindow.webContents.once(
                    'did-finish-load',
                    () => { 
                        onDidFinishLoad(resolve);
                    }  
                );  
                mainWindow.webContents.once(
                    'did-fail-load', 
                    (event,errorCode,errorDescription) => {  
                        onDidFailLoad(reject,errorDescription); 
                    }  
                );   
            } 
        ); 

我有以下編譯錯誤:

[at-loader]中的錯誤./app/loaders.ts:9:9 TS2322:類型'Promise {}'不能分配給Promise void類型。 類型“{}”不能指定為“void”類型。

它的工作原理是修改: Promise<void> into : Promise<any>

或者將new Promise投入new Promise<void>

TypeScript型'承諾<void | object> ' 不可分配給類型 'Promise<object> ' 在 Promise.then()<div id="text_translate"><p> 我目前正在嘗試以 base64 格式實現緩存文檔的服務。 我希望這個服務從 sessionStorage 中獲取文檔,如果 sessionStorage 中沒有文檔,則從 IRequestService 中獲取它,然后將其保存到 sessionStorage。 我嘗試了這種方法,但出現類型錯誤</p><pre>Type 'Promise&lt;void | GetDocumentResult&gt;' is not assignable to type 'Promise&lt;GetDocumentResult&gt;'.</pre><p> 代碼如下所示:</p><pre> getDocument(requestId: string, documentId: DocumentID, requestService: IRequestService): Promise&lt;GetDocumentResult&gt; { if (this.storageKey in sessionStorage) { const documentsMap: Map&lt;DocumentID, GetDocumentResult&gt; = new Map(JSON.parse(sessionStorage.getItem(this.storageKey).)) if (documentsMap.get(documentId).== undefined) { return new Promise(resolve =&gt; resolve(documentsMap,get(documentId).)) } } return requestService.getDocument(requestId, documentId) .then(value =&gt; {this.setDocument(documentId, value)}) }</pre><p> 我期待 Promise&lt;GetDocumentResult&gt;.then 的返回類型是 Promise&lt;GetDocumentResult&gt;,但由於某種我不明白的原因,它是 Promise&lt;void | 獲取文檔結果&gt;</p><p> 有人知道為什么會這樣嗎?</p><p> 謝謝</p></div></object></void>

[英]TypeScript Type 'Promise<void | Object>' is not assignable to type 'Promise<Object>' on Promise.then()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 打字稿:輸入“承諾”<void> &#39; 不可分配給類型 &#39;void | 破壞者 打字稿:類型 &#39;Promise&lt;{}&gt;&#39; 不可分配給類型 &#39;諾言 <void> &#39;不可分配給&#39;Promise <IListItem[]> TypeScript型'承諾<void | object> ' 不可分配給類型 'Promise<object> ' 在 Promise.then()<div id="text_translate"><p> 我目前正在嘗試以 base64 格式實現緩存文檔的服務。 我希望這個服務從 sessionStorage 中獲取文檔,如果 sessionStorage 中沒有文檔,則從 IRequestService 中獲取它,然后將其保存到 sessionStorage。 我嘗試了這種方法,但出現類型錯誤</p><pre>Type 'Promise&lt;void | GetDocumentResult&gt;' is not assignable to type 'Promise&lt;GetDocumentResult&gt;'.</pre><p> 代碼如下所示:</p><pre> getDocument(requestId: string, documentId: DocumentID, requestService: IRequestService): Promise&lt;GetDocumentResult&gt; { if (this.storageKey in sessionStorage) { const documentsMap: Map&lt;DocumentID, GetDocumentResult&gt; = new Map(JSON.parse(sessionStorage.getItem(this.storageKey).)) if (documentsMap.get(documentId).== undefined) { return new Promise(resolve =&gt; resolve(documentsMap,get(documentId).)) } } return requestService.getDocument(requestId, documentId) .then(value =&gt; {this.setDocument(documentId, value)}) }</pre><p> 我期待 Promise&lt;GetDocumentResult&gt;.then 的返回類型是 Promise&lt;GetDocumentResult&gt;,但由於某種我不明白的原因,它是 Promise&lt;void | 獲取文檔結果&gt;</p><p> 有人知道為什么會這樣嗎?</p><p> 謝謝</p></div></object></void> Promise 參數類型不可分配 angular2 TS2322類型&#39;Promise <void> &#39;不可分配給&#39;Promise <string> &#39;當給定字符串時 反應 TS - 類型 '() =&gt; Promise<void> ' 不可分配給類型 'EventHandler<clickevent, boolean | void> '</clickevent,></void> RxDB Angular2-cli&#39;承諾 <void> &#39;不能賦值給&#39;Promise&#39;類型的參數 <any> “ Typescript 類型 boolean 不可分配給 void Typescript Promise 拒收型
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM