我看到这个错误与打字稿:缺失索引签名与打字稿
代码本身看起来就像这样:
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'表示键/值。你能分享一个指向定义文件的链接吗? –