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. 関数定義のVoid引数で、宣言のプリミティブデータ型です
- 3. excel vba:特殊型 - 関数の引数としての関数
- 4. 可変数/引数タイプの関数用のTypeScript宣言ファイル
- 5. 汎用スウィフト関数での型キャスト
- 6. 関数の引数の複数の型
- 7. ジェネリック型引数を持つ汎用のジェネリック型
- 8. Haskellの関数の引数として渡す型?
- 9. void引数なしのFunc
- 10. 'void(ClassName ::)(QString&)'型の引数が 'void(ClassName :: *)(QString&)'と一致しません
- 11. typescript arrow関数のパラメータ型safe
- 12. javacが引数として使用する関数の汎用型引数を推論できないのはなぜですか?
- 13. 2つの異なる汎用引数を使用して汎用関数を呼び出す場合
- 14. typescript JSON.stringify緩い型と関数
- 15. Typescriptは汎用コンストラクタ関数を定義します
- 16. 関数の引数としてのtuple
- 17. 関数の引数としてのポインタ
- 18. 戻り型の汎用引数にアクセスする
- 19. 引数の型のパラメータに割り当てられない「数」typescriptです
- 20. 他の関数の引数としての関数JQuery
- 21. 関数の引数:引数として上限クラスと親クラス?
- 22. Julia関数の引数型def
- 23. Valaの汎用関数
- 24. 汎用関数
- 25. Typescript関数のインターフェイス
- 26. R関数の引数としての関数パラメータ
- 27. テンプレート引数としての内部型
- 28. 汎用オブジェクトと関数オブジェクト
- 29. 異なるポインタ型の引数ポインタとしてのキャスト関数ポインタ
- 30. 汎用インターフェイスタイプのSupports()関数の使用
ごめんなさい。質問に答えなかった部分を強調してくれますか? – Fenton