void
をTypeScriptの汎用関数の型パラメータとして指定することができます。関数の戻り値に対しては正常に動作します。しかし、void
が引数の型である場合、その値にどのような値を使用できるかははっきりしていません。 void
タイプの引数のパラメータを指定する方法はありますか?もしそうでなければ、そのような関数を宣言することはなぜ可能ですか?TypeScriptの汎用関数の引数の型としてのvoid
答えて
ボイドの値を取得するのは非常に簡単です。技術的にはまだundefined
値ですが、活字体は、それは我々が必要なものを正確にvoid型のだと考えていますが:
var voidValue = (function() { })();
注:彼らは有用な目的を果たしていないとして、私たちは、void型の変数の宣言を許可しないことを検討してください。しかし、Voidはジェネリック型または関数への型引数として許可されているため、Voidプロパティまたはパラメータを禁止することはできません。
void
を型引数として使用できますが、型として使用しないでください。実際に
、あなたは現在、型注釈にそれを使用することが可能かもしれないが、値を代入することは不可能である。
var x: void = ???; // cannot supply a value
ボイドの使用type引数を以下に示すよう:
をclass Example<TReturn> {
process(func:() => TReturn) {
return func();
}
}
このクラスのtype引数は、関数の戻り値の型を指定するために使用します。これは、その関数のタイプがvoid
であることを指定したいということです。だから型引数として許されなければならない。
var example = new Example<void>();
今、私はexample.process
への呼び出しを記述する際に、自動補完が、私はニーズを渡す引数は次のタイプを満たすためにと私に教えてくれます:
func:() => void
をそしてそれはまた、example.process
自身と私に教えてくれますこの場合は無効ですです。
void
はタイプに注釈を付けるためのものではありませんが、タイプ引数として許可する妥当な理由があるため、現在チェックされていません。それはあなたが不正なものを作成することができることを意味しますが、ハード、それを使用するために押されるだろう:
class Example<T> {
process(func: T) {
// if T is void, this is all wrong
}
}
var example = new Example<void>();
この無効例では(すべてのエラーを表示しません)あなたはへの呼び出しを記述することはできません有効な引数を渡すことができなかったため、example.process
あなたはこのような何かを行うことができます。私は活字体を使用してい
class Example<T> {
process(func: T = undefined) {
// use default undefined parameter
}
}
var example = new Example<void>();
exmple.process();
を1.8.7それは私のためにうまくいった。
- 1. Typescriptの関数の汎用戻り型
- 2. Typescript:汎用インタフェース/関数の型が削除されました
- 3. メソッドの引数としての汎用型
- 4. Typescript汎用インタフェース関数
- 5. TypeScriptの汎用関数でマップ型を推測する
- 6. 関数定義のVoid引数で、宣言のプリミティブデータ型です
- 7. 特定の型を関数オーバーロードの汎用として渡す
- 8. JSXノードのTypeScript型引数
- 9. excel vba:特殊型 - 関数の引数としての関数
- 10. 汎用関数と型パラメータを持つ関数の相違
- 11. 可変引数数を持つ関数のTypeScript型シグネチャ
- 12. 汎用関数型ガード
- 13. テンプレートテンプレートの引数として非タイプのテンプレート引数に依存する汎用関数のシグネチャを使用テンプレート
- 14. 汎用スウィフト関数での型キャスト
- 15. 汎用戻り型の関数
- 16. TypeScriptのジェネリック関数と関数の引数
- 17. char関数(void)とvoid関数(void)のCの差
- 18. ジェネリック型引数を持つ汎用のジェネリック型
- 19. 引数として汎用ハッシュ?
- 20. TypeScriptの汎用型のサブタイプの推定
- 21. 可変数/引数タイプの関数用のTypeScript宣言ファイル
- 22. 'void(ClassName ::)(QString&)'型の引数が 'void(ClassName :: *)(QString&)'と一致しません
- 23. 関数の引数としてfilehandleの型をヒンティングする
- 24. Haskellの関数の引数として渡す型?
- 25. 関数の引数の複数の型
- 26. cで同じデータ型の複数配列の汎用関数?
- 27. void引数なしのFunc
- 28. VB.NET:タイプ引数と汎用関数を使用する
- 29. 非void戻り型の仮想関数
- 30. 2つの引数を持つパラメータとしてvoid関数を渡します。
ごめんなさい。質問に答えなかった部分を強調してくれますか? – Fenton