我看到這個錯誤與打字稿:缺失索引簽名與打字稿
代碼本身看起來就像這樣:
let fn = function (transformPaths: Array<string>, cb: Function) {
async.mapLimit(transformPaths, 5, function (t: string, $cb: Function) {
// ....
}, cb);
};
該錯誤消息:
TS234 5:類型'字符串[]'的參數不可分配給參數 類型'字典< {}>'。類型'string []'中缺少索引簽名。
我該如何解決這個問題?從屏幕截圖中可以看到,異步庫的類型不像將async.mapLimit的第一個參數傳遞給字符串的普通數組,但爲什麼?
我99%肯定我需要添加一個索引簽名到字符串數組,但我該怎麼做?
下面是一些「編譯」,但我不知道這是否是正確的(這似乎並沒有被任何人幫助的):
export interface ISumanTransformPaths extends Array<string> {
[index:string]: Object
}
現在,當我使用(transformPaths: ISumanTransformPaths)
,然後再編譯,但我不確定這是否正確。
你需要一個不同的類型。你有一個數組,你需要什麼似乎是一個JS對象(即:{{key1:「value1」,key2:「value2」}) –
@NitzanTomer我不這麼認爲 - 我認爲異步庫將接受一個Iterable,它可以是Object或Array。但我同意,這不是很清楚。 –
我不知道這個'async'庫,但通常'Dictionary'表示鍵/值。你能分享一個指向定義文件的鏈接嗎? –