如何在Typescript中定義Promise的返回值型別
問題
如何在 Typescript 中定義 Promise 的返回值型別?
描述
如圖所示,可以看到 Promise 中,reslove()
方法傳入的是 number 型別。但是,Typescript 感知到的型別卻是 Promise<{}>
。如何讓
解決辦法
方法一
通過 Promise 的建構函式,宣告返回值的泛型型別。
方法二
修改 reslove
的型別定義
原理
/**
* Creates a new Promise.
* @param executor A callback used to initialize the promise. This callback is passed two arguments:
* a resolve callback used resolve the promise with a value or the result of another promise,
* and a reject callback used to reject the promise with a provided reason or error.
*/
new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
Promise
的型別定義如上,我們可以看到 Promise 返回值的型別定義,可以由兩部分決定。第一個是構造時的泛型值,第二個是 reslove
函式 value
值得型別。
參考文章
相關文章
- 多型中的返回值型別多型型別
- XML中的DTD文件型別定義XML型別
- 對於返回值型別不確定的函式如何限定返回值型別型別函式
- Typescript 下 Mongoose 外來鍵型別&外來鍵陣列型別定義&型別保護&聯合型別理解TypeScriptGo型別陣列
- 聊聊 TypeScript 中的型別保護TypeScript型別
- 實現TypeScript中的互斥型別TypeScript型別
- JavaScript 和 TypeScript 交叉口 —— 型別定義檔案(*.d.ts)JavaScriptTypeScript型別
- js中的typeof返回值的所有型別JS型別
- TypeScript 中的非基礎型別宣告TypeScript型別
- js中typeof的返回值型別有哪些JS型別
- TypeScript this型別TypeScript型別
- DTD文件型別定義型別
- 定義物料型別的屬性型別
- TypeScript 泛型型別TypeScript泛型型別
- 關於mysql中欄位定義的型別int、tinyint區別MySql型別
- 《每天用對比的思想學點 golang》PHP 對比有意思的 go-定義函式,定義返回值型別GolangPHP函式型別
- Go 之基礎速學 (二) 語法套路:型別、定義函式、返回值Go型別函式
- TypeScript 型別相容TypeScript型別
- TypeScript 交叉型別TypeScript型別
- Typescript:基本型別TypeScript型別
- TypeScript 字串型別TypeScript字串型別
- TypeScript Never型別TypeScript型別
- TypeScript Any型別TypeScript型別
- TypeScript 索引型別TypeScript索引型別
- TypeScript 型別安全TypeScript型別
- 預定義錯誤型別型別
- 【譯】TypeScript 的型別(一)TypeScript型別
- 巨集定義和列舉型別的區別型別
- TypeScript中的範型TypeScript
- TypeScript 強大的型別別名TypeScript型別
- Typescript 回撥函式、事件偵聽的型別定義與註釋--拾人牙慧TypeScript函式事件型別
- 搞懂 TypeScript 中的對映型別(Mapped Types)TypeScript型別APP
- TypeScript 中令人迷惑的物件型別:Object、{} 和 objectTypeScript物件型別Object
- TypeScript type 型別別名TypeScript型別
- TypeScript 基本型別和泛型的使用TypeScript型別泛型
- 還可以這麼玩?超實用 Typescript 內建型別與自定義型別TypeScript型別
- Golang通脈之型別定義Golang型別
- 定義SQL*PLUS型別的可執行SQL型別