Je vois cette erreur avec tapuscrit:signature index manquant dans le type tableau <string> avec tapuscrit
Le code lui-même ressemble à ceci:
let fn = function (transformPaths: Array<string>, cb: Function) {
async.mapLimit(transformPaths, 5, function (t: string, $cb: Function) {
// ....
}, cb);
};
Le message d'erreur est :
TS234 5: L'argument de type 'string []' n'est pas assignable au paramètre type 'Dictionary < {}>'. La signature d'index est manquante dans le type 'chaîne []'.
Comment puis-je corriger cela? Comme vous pouvez le voir sur la capture d'écran, les typings de la bibliothèque asynchrone n'aiment pas qu'un simple tableau de chaînes soit passé comme premier argument de async.mapLimit, mais pourquoi?
Je suis certain à 99% que je dois ajouter une signature d'index au tableau de chaînes, mais comment faire?
Voici quelque chose qui « compile », mais je ne sais pas si c'est correct (cela ne semble pas aider tout le monde):
export interface ISumanTransformPaths extends Array<string> {
[index:string]: Object
}
maintenant, quand je l'utilise (transformPaths: ISumanTransformPaths)
, il compile, mais je ne suis pas sûr que ce soit correct.
Vous avez besoin d'un autre type. Vous avez un tableau, et vous avez besoin de ce qui semble être un objet js (ie: '{key1:" value1 ", key2:" value2 "}') –
@NitzanTomer Je ne pense pas - je pense que la bibliothèque async acceptera un Iterable, qui peut être un objet ou un tableau. Mais je suis d'accord, ce n'est pas très clair. –
Je ne connais pas cette bibliothèque 'async', mais habituellement' Dictionary' signifie clé/valeur. Pouvez-vous partager un lien vers le fichier de définition pour cela? –