1
我有一系列相關的類打包並從單個模塊導出。喜歡的東西:鍵入模塊名稱空間對象的索引簽名
// states.ts
export {default as Alabama} from "./alabama";
export {default as Alaska} from "./alaska";
//...
現在,其他地方的代碼,我想通過遍歷所有相關的類:
import * as States from "./states.ts"
for(let stateExportName in States) {
let thisStateConstructor = States[stateExportName];
// ... do something.
}
握住一邊在CommonJS的模塊的出口名稱該迭代將使用for-在(如上所述),而迭代es6模塊名稱空間對象的導出將使用for-of(因爲模塊名稱空間對象上的es6 does define @@ iterator)......在這兩種情況下,都應該可以進行此迭代。
問題是,當我做States[stateExportName]
,我得到一個「隱式對象類型的索引簽名具有'任何'類型。」這是有道理的,因爲我沒有在任何地方爲模塊定義索引簽名。
我的問題是:是否可以在Typescript中爲ES6模塊定義這樣的簽名?如果是這樣,怎麼樣?
「不「是我的想法。然後我會在TS回購上爲此打開一個問題。 關於使任何明確的:當我添加':any'我仍然得到相同的錯誤。任何想法爲什麼? – Ethan