2016-09-19 7 views
1

私は、一連の関連クラスをパッケージ化し、1つのモジュールからエクスポートしました。何かのように:用-で使用することになりさておきcommonjsモジュールの輸出名の上にその繰り返しを持ちモジュールの名前空間オブジェクトのインデックス署名の入力

import * as States from "./states.ts" 

for(let stateExportName in States) { 
    let thisStateConstructor = States[stateExportName]; 
    // ... do something. 
} 

:今

// states.ts 

export {default as Alabama} from "./alabama"; 
export {default as Alaska} from "./alaska"; 
//... 

、他の場所のコードで、私は以上のすべての関連するクラスを反復処理したいです(上記のように)、es6モジュールの名前空間オブジェクトの書き出しを繰り返すのはfor-ofを使用します(モジュールnamespaceオブジェクトのes6 does define @@イテレータ以降)...どちらの場合でもこの繰り返しが可能です。

問題は、私がStates[stateExportName]を実行したときに、「オブジェクトタイプのインデックスシグネチャに暗黙のうちに「any」タイプがあります。モジュールのインデックス署名をどこにも定義していないので、意味があります。

私の質問は:TypescriptでES6モジュールのそのような署名を定義することは可能ですか?もしそうなら、どうですか?

答えて

0

ことが可能である活字体

にES6モジュールのようなシグネチャを定義する

号ただし、以下に示すように、任意の性質について明示ことができる:

import * as States from "./states.ts" 

for(let stateExportName in States) { 
    let thisStateConstructor:any = States[stateExportName]; // NOTICE THE `:any` 
    // ... do something. 
} 
+0

"いいえ "と私は考えています。私はこれについてTSリポジトリで問題を開いていきます。 anyを明示的にすることについて: ':any'を追加するとき、私は同じエラーを受け取ります。どんな考え? – Ethan