クラスにメソッドを動的に追加するにはどうすればよいですか?

ラルフ・ホルツマン

これはエラーで失敗する要約です

assignment of computed property/element. Indexable signature not found

確かに、フローはmethods配列内の型と文字列を読み取ることができますなぜ文句を言うのですか?

user6445533

フローは、カスタムクラス定義でインデックス可能なプロパティを許可していないようです。理由はわかりませんが。

AFAIKには2つの回避策があります。

Object明示的にクラスを拡張します

/* @flow */

const methods: Array<string> = ['bar', 'baz'];

class Foo extends Object {}
//        ^^^^^^^^^^^^^^

methods.forEach((method: string) => {
  Foo.prototype[method] = function () {
    console.log('method', method);
  }
});

それを試してみてください

または、インターフェイスでインデックス可能な署名を宣言します。

/* @flow */

interface Ix {
  [key: any]: any
}

class StrFunIx implements Ix {
  $key: string;
  $value: function;
}

class Foo extends StrFunIx {}

const methods: Array<string> = ['bar', 'baz'];

methods.forEach((method: string) => {
  Foo.prototype[method] = x => x;
});

それを試してみてください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonで既存のクラスにメソッドを追加するにはどうすればよいですか?

分類Dev

AsyncTaskクラスにメソッドを追加するにはどうすればよいですか?

分類Dev

TypeScriptクラスに静的メソッドを追加するにはどうすればよいですか?

分類Dev

クラスの初期化中に文字列にエンコードされた動的メソッドを追加するにはどうすればよいですか?

分類Dev

execを使用して静的メソッドをクラスに動的に追加するにはどうすればよいですか?

分類Dev

クラスメソッドを適切に作成するにはどうすればよいですか?

分類Dev

@InjectMocksクラスのメソッドをモックするにはどうすればよいですか?

分類Dev

インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

分類Dev

メソッドのパラメーターとして使用できるクラスを動的に定義するにはどうすればよいですか?

分類Dev

PHPのコンストラクタークラス内にメソッドを追加するにはどうすればよいですか?

分類Dev

別のクラスからメソッドを実行するにはどうすればよいですか?

分類Dev

クラス(Ruby)のメソッドで名前を表示するにはどうすればよいですか?

分類Dev

UITableViewCellクラスでdequeueReuseableCellwithIdentifierメソッドを使用するにはどうすればよいですか?

分類Dev

'new'メソッドなしでクラスを作成するにはどうすればよいですか?

分類Dev

activerecordコレクションにメソッドを追加するにはどうすればよいですか?

分類Dev

クラス内のメソッドにアクセスするにはどうすればよいですか?

分類Dev

VB.NET-クラスオブジェクトのlinqにカスタムメソッドを追加するにはどうすればよいですか?

分類Dev

階層の親クラスのメソッドを使用するにはどうすればよいですか?

分類Dev

クラスメソッドを変更するにはどうすればよいですか?

分類Dev

PHPクラスメソッド定義を参照するにはどうすればよいですか?

分類Dev

クラスメソッドの署名を確認するにはどうすればよいですか?

分類Dev

pickerViewクラスのdidSelectRowメソッドを実装するにはどうすればよいですか?

分類Dev

クラスのprintメソッドを送信するにはどうすればよいですか?

分類Dev

Retry TestNGメソッドにスリープを追加するにはどうすればよいですか?

分類Dev

トレイトを使用してScalaのクラスに新しいメソッドを追加するにはどうすればよいですか?

分類Dev

javascriptのカスタムコンストラクターにカスタムメソッドを追加するにはどうすればよいですか?

分類Dev

文法のアクションクラスにデフォルトのメソッドを追加するにはどうすればよいですか?

分類Dev

Python 3のクラスobjで「in」を使用するメソッドを追加するにはどうすればよいですか?

分類Dev

Pythonクラスにカスタムメソッドを追加するにはどうすればよいですか?

Related 関連記事

  1. 1

    Pythonで既存のクラスにメソッドを追加するにはどうすればよいですか?

  2. 2

    AsyncTaskクラスにメソッドを追加するにはどうすればよいですか?

  3. 3

    TypeScriptクラスに静的メソッドを追加するにはどうすればよいですか?

  4. 4

    クラスの初期化中に文字列にエンコードされた動的メソッドを追加するにはどうすればよいですか?

  5. 5

    execを使用して静的メソッドをクラスに動的に追加するにはどうすればよいですか?

  6. 6

    クラスメソッドを適切に作成するにはどうすればよいですか?

  7. 7

    @InjectMocksクラスのメソッドをモックするにはどうすればよいですか?

  8. 8

    インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

  9. 9

    メソッドのパラメーターとして使用できるクラスを動的に定義するにはどうすればよいですか?

  10. 10

    PHPのコンストラクタークラス内にメソッドを追加するにはどうすればよいですか?

  11. 11

    別のクラスからメソッドを実行するにはどうすればよいですか?

  12. 12

    クラス(Ruby)のメソッドで名前を表示するにはどうすればよいですか?

  13. 13

    UITableViewCellクラスでdequeueReuseableCellwithIdentifierメソッドを使用するにはどうすればよいですか?

  14. 14

    'new'メソッドなしでクラスを作成するにはどうすればよいですか?

  15. 15

    activerecordコレクションにメソッドを追加するにはどうすればよいですか?

  16. 16

    クラス内のメソッドにアクセスするにはどうすればよいですか?

  17. 17

    VB.NET-クラスオブジェクトのlinqにカスタムメソッドを追加するにはどうすればよいですか?

  18. 18

    階層の親クラスのメソッドを使用するにはどうすればよいですか?

  19. 19

    クラスメソッドを変更するにはどうすればよいですか?

  20. 20

    PHPクラスメソッド定義を参照するにはどうすればよいですか?

  21. 21

    クラスメソッドの署名を確認するにはどうすればよいですか?

  22. 22

    pickerViewクラスのdidSelectRowメソッドを実装するにはどうすればよいですか?

  23. 23

    クラスのprintメソッドを送信するにはどうすればよいですか?

  24. 24

    Retry TestNGメソッドにスリープを追加するにはどうすればよいですか?

  25. 25

    トレイトを使用してScalaのクラスに新しいメソッドを追加するにはどうすればよいですか?

  26. 26

    javascriptのカスタムコンストラクターにカスタムメソッドを追加するにはどうすればよいですか?

  27. 27

    文法のアクションクラスにデフォルトのメソッドを追加するにはどうすればよいですか?

  28. 28

    Python 3のクラスobjで「in」を使用するメソッドを追加するにはどうすればよいですか?

  29. 29

    Pythonクラスにカスタムメソッドを追加するにはどうすればよいですか?

ホットタグ

アーカイブ