2017-03-11 7 views
0

任意の型を持っています警告の場合のコード:活字体の警告=> TS7017は: - 任意の型ここ</p> </blockquote> <p>は、オブジェクトの</p> <blockquote> <p>インデックスの署名が暗黙的に入力されたオブジェクト型のインデックス署名は暗黙のうちに、私は以下の活字体の警告を取得しています

Object.keys(events).forEach(function (k: string) { 

    const ev: ISumanEvent = events[k]; // warning is for this line!! 
    const toStr = String(ev); 
    assert(ev.explanation.length > 20, ' => (collapsed).'); 

    if (toStr !== k) { 
    throw new Error(' => (collapsed).'); 
    } 
}); 

警告はなぜ表示されるのですか?私はそれを把握することはできません。

これはISumanEventの定義であるのに役立ちます場合:

interface ISumanEvent extends String { 
    explanation: string, 
    toString: TSumanToString, 
    [key: string]: string|TSumanToString|ISumanEvent; 
} 

あなたはあなたのようにインデックスでアクセスできるようになります:あなたは、あなたのインターフェイス定義にインデクサプロパティを追加することができ

interface ISumanEvent extends String { 
    explanation: string, 
    toString: TSumanToString 
} 

答えて

1

do:events[k];。また、ユニオンインデクサでは、明示的に定義するのではなく、コンパイラに型を推論させる方が良いでしょう。

const ev = events[k]; 
関連する問題

 関連する問題