Bonjour, je suis en train d'apprendre le typage et je suis ces exercices : Lien
J'ai du mal à comprendre comment je dois procéder avec cet exemple.
il y a un code comme celui-ci :
export function map(mapper, input) {
if (arguments.length === 0) {
return map;
}
if (arguments.length === 1) {
return function subFunction(subInput) {
if (arguments.length === 0) {
return subFunction;
}
return subInput.map(mapper);
};
}
return input.map(mapper);
}
et je suis censé y ajouter des types. J'ai réussi à créer quelque chose comme ceci :
export function map<T>(mapper: Function, input : T[]| any) : T[] | Function {
if (arguments.length === 0) {
return map;
}
if (arguments.length === 1) {
return function subFunction(subInput: T[]|any): T[] | Function {
if (arguments.length === 0) {
return subFunction;
}
return subInput.map(mapper);
};
}
return input.map(mapper);
}
Les typescript ne renvoient plus d'erreurs de compilation maintenant mais j'échoue toujours le test. Je ne comprends pas ce que l'on attend de moi pour que cela fonctionne.
Je peux vérifier la réponse suggérée mais quand je regarde, c'est de la magie noire pour moi.
Je pourrais vérifier test.ts
pour ce qui est attendu, mais une notation comme const mapResult1 = map()(String)()([1, 2, 3]);
est très étrange pour moi.