インデクサーを定義するインターフェイスを使用して、システムタイプnumber[]で使用しようとすると問題が発生しました。インターフェイスの理由は、number []と型付き配列インスタンスの両方の場合のように、数値を返すよりも数値インデクサーを持つ任意の型を渡せるようにするためです。
検討:
interface IIndexedNumeric
{
[index: number]: number;
}
class buffer {
// ...
push(vals: IIndexedNumeric) { ... }
}
// problem usage:
var ary: number[] = [1,2,3];
var foo = new buffer();
foo.push(ary); // error
// Supplied parameters do not match any signature of call target:
// Could not apply type 'IIndexedNumeric' to argument 1, which is of type 'number[]'
これが発生する必要がありますか?number[]は完全に構造的にIIndexedNumericを実装する必要があるようです。私が単に何かを失敗させた場合は、私のエラーを確認するのを手伝ってください。そうでない場合は、回避策を考えていただけますか?