9

TypeScript で型付き関数配列を宣言する方法を知りたいと思っていました。

たとえば、引数を持たずに void を返す関数を保持できるフィールドがあるとします。

private func: () => void;

ここで、そのような関数の配列を保持できるフィールドが必要だとします。

private funcs: () => void  [];

コンパイラはこれを void の配列を返す関数と見なすため、これは明らかに私が意図したことを行うには間違った方法です。

次のように、インライン プロトタイプ宣言を括弧で分離しようとしています。

private funcs2: (  () => void  ) [];

コンパイラ エラーが発生します。

これがどのように達成されるかについて誰かが考えを持っていますか?

4

1 に答える 1

17

=>短縮形ではなく、完全な型リテラル構文を使用する必要があります。

private funcs: { (): void; }[];

奇妙に見える場合は、インターフェイスを作成することもできます。

// (elsewhere at top-level)
interface foo {
    (): void;
}

class etc {
    private funcs: foo[];
}
于 2013-02-02T16:14:21.150 に答える