2016-05-23 3 views
0

私は角のサブモジュールを使ってモジュールを書いています。表記:暗黙のうちにモジュールの書き出しを繰り返す

module App.services { 
    export class SomeService { } 
} 

と私が使用しているすべてのサービスを初期化:「オブジェクト型のインデックスの署名が暗黙のうちに 『あらゆる』タイプを持っている」しかしdefToArray(App.services[s])原因

function defToArray(def: any): any[] { 
    return (def.dependencies || []).concat(def) 
} 

for (var s in App.services) 
    app.service(s, defToArray(App.services[s])); 

を。

私はすでにdefToArray(<any>App.services[s])defToArray(App.services[s] as any)のようなキャスティングを試みましたが、運はありません。

どのような考えですか?

答えて

1

キャストは非常に強く結合していません。

代わりの

defToArray(<any>App.services[s]) 

defToArray((<any>App.services)[s]) 

か、明確にするため

defToArray((<{[key:string]:any}>App.services)[s]) 

を好む場合は、ここでの目標は、あなたがしている、App.services[s]のタイプをキャストすることはないとしてみてください実際にはインデックス別アクセス演算子の型情報を提供しようとしています。これは、noImplicitAnyが有効になっている場合にのみ問題になります(ただし、常にIMOである必要がありますので、調整することの1つです)

+0

あなたは命の恩人です! – Ken

+1

@Ken助けてくれることを嬉しく思っています。好奇心が強い場合に備えて、私はいくつかの情報を追加しました。 – Paarth

関連する問題