2017-11-12 204 views
2

以下のエラーが発生します。私はこのコードの意味を知っていますが、どのようにインターフェイスがどのように表示されるべきか分かりません。要素は暗黙的に 'any'型です。インデックス式の型が 'number'でないためです

要素は暗黙的に 'any'型です。インデックス式の型が 'number'でないためです。

インターフェース:

export declare interface Category { 
    id: string; 
    name: string; 
    parent_id: string; 
} 

export declare interface CategoriesMap { 
    [key: string]: Category; 
} 

成分:

private listOfSubcategories: CategoriesMap[] = []; 

private selectCategory($event: any, index: string) { 
     this.category = this.listOfSubcategories[index][$event.target.value]; 
    } 

よろしく

答えて

3

あなたthis.listOfSubcategoriesは、配列が、index文字列です。これは配列から読み取るための数字でなければなりません。

+0

ありがとうございました。しかし今すぐ foo = this.subcategories [parseInt(index)] foo.filter((d:any)=> true); throws >型がコールシグネチャを持たない式を呼び出せません – SheppardPL

+0

'd'を' any'と入力したのはなぜですか?それは 'CategoriesMap'ではありませんか? – user184994

+0

はい、 'any'が安全です。完全なエラーは次のとおりです。型にコールシグネチャがない式を呼び出すことはできません。タイプ 'Category'に互換性のあるコールシグネチャはありません。 – SheppardPL

関連する問題