TypeScriptで推論された型を参照する方法はありますか?
次の例では、適切な推論された型を取得します。
function Test() {
return {hello:"world"}
}
var test = Test()
test.hello // works
test.bob // 'bob' doesn't exist on inferred type
Test
しかし、インターフェイスを明示的に定義せずに、"Whatever returns" 型のパラメーターを受け取る関数を定義したい場合はどうすればよいでしょうか。
function Thing(test:???) {
test.hello // works
test.bob // I want this to fail
}
これは回避策ですが、Test に独自のパラメーターがある場合は面倒です。
function Thing(test = Test()) {} // thanks default parameter!
Test が返すものの推論された型を参照する方法はありますか? インターフェイスを作成せずに、「テストが返すものは何でも」と入力できますか?
私が気にする理由は、通常、クラスの代わりにクロージャー/モジュール パターンを使用するためです。Typescript では、そのクラスを記述するインターフェイスを作成できますが、既に何かをクラスとして入力できます。クラスの代わりに関数が返すものとして何かを入力したい。理由の詳細については、Typescript のクロージャ (依存性注入)を参照してください。
これを解決する最善の方法は、依存関係をパラメーターとして受け取るモジュールを定義する機能、またはクロージャー内でモジュールを定義する機能を TypeScript が追加した場合です。次に、気の利いたexport
構文を使用できます。これについて何か計画があるかどうか知っている人はいますか?