[解決済み] 関数の戻り値の型を取得する
2022-04-23 17:03:38
質問
以下のような関数があります。
function test(): number {
return 42;
}
関数の型を取得するには
typeof
:
type t = typeof test;
ここです。
t
は
() => number
.
関数の戻り値の型を取得する方法はありますか?私は次のようにしたいと思います。
t
になります。
number
ではなく
() => number
.
解決方法は?
EDIT
TypeScript 2.8では、これは正式に
ReturnType<T>
.
type T10 = ReturnType<() => string>; // string
type T11 = ReturnType<(s: string) => void>; // void
type T12 = ReturnType<(<T>() => T)>; // {}
type T13 = ReturnType<(<T extends U, U extends number[]>() => T)>; // number[]
参照 この Microsoft/TypeScript へのプルリクエストは をご覧ください。
TypeScriptはすごい!
昔ながらのハック
ライアンの回答は、残念ながらもう使えません。しかし、私はあるハックを使ってそれを修正しました。それは、私にとって理不尽なほど嬉しいものです。見てください。
const fnReturnType = (false as true) && fn();
をキャストすることで動作します。
false
のリテラル値に対して
true
このため、型システムは戻り値を関数の型と見なしますが、実際にコードを実行すると、この関数は
false
.
関連
-
[解決済み] eslintをtypescriptで使用する - モジュールへのパスを解決できない
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] TypeScriptで文字列をenumに変換するには?
-
[解決済み] Typescript オブジェクトのインデックス付きメンバの型を強制する?
-
[解決済み] Typescript によるインターフェース型チェック
-
[解決済み] タイプスクリプトのレコードタイプとは何ですか?
-
[解決済み] Typescript Date Type?
-
[解決済み】TypeScriptのインターフェースと型について
-
[解決済み】TypeScriptでJSONファイルを取り込む
-
[解決済み] TypeScriptのarrow関数で戻り値の型を指定する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] タイプスクリプトのエラーです。TS7053 要素が暗黙のうちに 'any' 型を持っています。
-
ts 学習日記1 AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります
-
[解決済み] as "というキーワードは何を意味するのでしょうか?
-
[解決済み] サービスにDocumentを挿入する方法は?
-
[解決済み] TypeScriptのsetTimeoutはどのような戻り値型を使用すればよいですか?
-
[解決済み] TypeScriptでグローバル変数を作成する
-
[解決済み] メインとテストのコンパイルを分離するために、typescriptコンパイラ(tsc)のオプションはどのように設定するのが正しいのでしょうか?
-
[解決済み] TypeScriptでの取得と設定
-
[解決済み】TypeScriptのインターフェースと型について
-
[解決済み】tsconfig.jsonファイルを生成するにはどうしたらいいですか?