2

C#のFuncキーワードに相当するTypeScriptはありますか?

今日、いくつかの既存のコードを変換するTypeScriptの予備調査で、クラス/オブジェクトのインターフェイスを使用しましたが、関数型を不必要に複製していることに気付きました。私は何かが足りないのですか?

以下では、オブジェクトタイプ(データ)のインターフェイスを定義し、名前を付けることでメリットが得られます(データ:データ)=> void

interface Funcs {
    box: (data: Data) => void;
    lbl: (data: Data) => void;
}

ありがとう!

4

2 に答える 2

3

関数型(args) => tはオブジェクト型の単なる省略形{(args): t}であるため、次のように機能するはずです。

interface Func {
  (data: Data): void;
}

interface Funcs {
  box: Func;
  lbl: Func;
}
于 2012-11-04T16:17:19.207 に答える
0

C# では、Funcジェネリック型パラメーターを取ります。ジェネリックはまだ TypeScript 言語仕様の一部ではありませんが、ロードマップには記載されています。

そうは言っても、この場合にそれをどのように使用するつもりなのかわかりません-あなたはこれを求めていますか?

疑似コード:

interface Funcs {
    box: Action<Data>;
    lbl: Action<Data>;
}

定義を短くするには (つまり、Data 型のパラメーターを受け入れて void を返します)。Action戻り値がないので使いましたが、Func<Data, ResultType>こちらも同様に考えてください。

いずれにせよ、ジェネリックがどのように実装され、この種の使用が許可されているかを確認する必要があります。

于 2012-11-04T05:36:44.000 に答える