[解決済み] Promiseの型はどのようにアンラップするのですか?
2022-11-10 04:33:23
質問
次のようなコードがあるとします。
async promiseOne() {
return 1
} // => Promise<number>
const promisedOne = promiseOne()
typeof promisedOne // => Promised<number>
プロミスの結果の型(この単純化されたケースでは数値)を独自の型として抽出するにはどうしたらよいでしょうか。
どのように解決するのですか?
TypeScript 4.5
この
Awaited
型は言語に組み込まれたので、自分で書く必要はありません。
type T = Awaited<Promise<PromiseLike<number>> // => number
TypeScript 4.1~4.4について
いくつかの定義が可能で、自分で実装することができます。最もシンプルなのは
type Awaited<T> = T extends PromiseLike<infer U> ? U : T
// Awaited<Promise<number>> = number
この型では
PromiseLike
ではなく
Promise
T
Promise<Promise<string>>
関連
-
[解決済み] TypeScriptで文字列を数値に変換する方法とは?
-
[解決済み] クラス定数を実装するには?
-
[解決済み] TypeScriptのオブジェクトリテラルでの型定義
-
[解決済み] Typescriptで型の拡張は可能か?
-
[解決済み】PromiseとObservablesの違いは何ですか?
-
[解決済み】Array.mapで非同期awaitを使用する。
-
[解決済み】プロミスの値にアクセスする方法は?
-
[解決済み] .then()チェーンで以前のプロミス結果にアクセスするにはどうすればよいですか?
-
[解決済み] タイプスクリプト。カスタムタイプに対する typeof のチェック
-
[解決済み] typescriptでmoment.jsをインポートするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] TypeScriptで Object.keys return string[].
-
[解決済み] describe'という名前が見つかりません。テストランナー用の型定義をインストールする必要がありますか?
-
[解決済み] ts ES5/ES3の非同期関数やメソッドには、「Promise」コンストラクタが必要です。
-
[解決済み] Typescriptでインターフェースやクラスを使用する場合 [重複].
-
[解決済み] ユニオン型からインターセクション型への変換
-
[解決済み] 文字列ユニオンから文字列配列へ
-
[解決済み] Typescript のプリミティブ型:"number" と "Number" の違い(TSC は大文字と小文字を区別しない)?
-
[解決済み] タイプスクリプトのパイプ(|)の意味とは?
-
[解決済み] グローバルスコープの拡張は、外部モジュールまたはアンビエントモジュール宣言にのみ直接ネストすることができます(2669)
-
[解決済み] TypeScriptで強く型付けされた配列の作成