Bonjour à tous !
J’essaie de faire en Typescript une fonction qui prend en paramètre une deuxième fonction où cette dernière peut utiliser n’importe quel type pour son paramètre mais la valeur de retour et le paramètre doivent être du même type
Un petit exemple :
class Modifier {
type: string;
apply: <T>(data: T) => T;
constructor(type: string, apply: (data: any) => any) {
this.type = type;
this.apply = apply;
}
}
Donc ici je cherche à passer une fonction au constructeur pour apply qui peut être de n’importe quel type mais qui doit respecter la seule règle suivante : le type de retour doit être le même que celui du paramètre
Comme c’est écrit actuellement, ça fonctionne à moitié. Typescript me laisse bien passer n’importe quel type pour la fonction mais le type du paramètre et du retour peuvent être différents
Si je l’écrit de la manière suivante :
class Modifier {
type: string;
apply: <T>(data: T) => T;
constructor(type: string, apply: <T>(data: T) => T) {
this.type = type;
this.apply = apply;
}
}
Alors je me retrouve avec des erreurs dès que je veux passer une fonction du type : (data: string[]) => string[]
:
Type 'T' is not assignable to type 'string[]'
Est-ce que quelqu’un aurait une idée de comment réaliser ce genre de chose, si c’est même possible ?
Merci d’avance pour votre aide