Dire que j'ai le code dactylographiée suivant:Declare classe à l'intérieur fonction usine exportée/fermeture
export const makeMyClass = function(a: string, b: boolean){
const MyClass = function(){
};
MyClass.prototype.foo = function(){};
MyClass.prototype.bar = function(){};
return MyClass;
}
Je ne parviens pas à trouver comment convertir le code dans la fonction usine exportée en tapuscrit.
Par exemple, si je fais ceci:
export const makeMyClass = function(a: string, b: boolean): MyClass {
class MyClass {
}
// ...
return MyClass;
}
tapuscrit se plaint en disant qu'il ne peut pas trouver le nom « MyClass ». S'il vous plaît supposer que j'ai besoin d'utiliser la fermeture exportée pour le bien de la question.
Je pense que la seule solution que vous pouvez utiliser est de déclarer une interface dans une portée externe que la classe implémente, puis renvoyer un constructeur pour cette interface. Pourriez-vous étoffer un peu l'implémentation de 'MyClass' pour que je puisse vous montrer ce que je veux dire? – jcalz
Je ne veux pas ajouter de détails superflus à la question, cela rend les choses plus difficiles pour les gens de savoir ce que je leur demande. Je pense que je sais de quoi vous parlez, alors si cela ne vous dérange pas d'ajouter une réponse, je vais l'augmenter. –