2017-06-11 11 views
4

は、私は、次の活字体のコードを持っている期待し:パス配列は、 - '辞書<{}>'

const allDescribeBlocks: Array<ITestSuite> = suman.allDescribeBlocks; 

async.eachSeries(allDescribeBlocks, function (block: ITestSuite, cb: Function) { 

//.... 

}, cb); 

これは警告でtranspileます:タイプITestSuiteの

引数[]は割り当て可能ではありません〜 辞書の< {}>のパラメータに。 ITestSuite []に​​インデックス署名がありません。

修正方法?ここで

は正確な警告です:enter image description here

+1

「Dictionary」という名前からは、配列ではなくオブジェクトが必要であることが示唆されているようです。 – unional

答えて

1

を使用すると、非同期ライブラリの最新型定義をインストールしたことがありますか?

npm install --save @types/async 

私はちょうど彼らのソースをチェックし、それが配列やコレクションの両方を受け入れる必要があります。

export function each<T, E>(arr: T[] | IterableIterator<T>, iterator: AsyncIterator<T, E>, callback?: ErrorCallback<E>): void; 
export function each<T, E>(arr: Dictionary<T>, iterator: AsyncIterator<T, E>, callback?: ErrorCallback<E>): void; 
export const eachSeries: typeof each; 

私はあなたがタイプ定義モジュールをインストールし、"typeRoots": ["node_modules/@types"]を使用してtsconfig.jsonに定義ディレクトリを追加する場合、それが必要だと思います問題を解決してください。

編集 - また、単純タイプの場合はArray<T>の定義を避け、T[]を使用してください。

関連する問題