J'ai la fonction d'ordre supérieur pour contructeurs emballage suivant:Comment documenter javascript fonction d'ordre supérieur?
/**
* Wrapper for calling constructor with given parameters
*
* @param {Class} Cls
* @returns {function} Wrapper on constructor which creates an instance of given Class
*/
function constructorWrapper(Cls) {
return (...args) => new Cls(...args);
}
Donc, si j'ai une classe MyClass
, je peux faire ce qui suit:
exports.MyClass = MyClass;
exports.myClass = constructorWrapper(MyClass);
Maintenant, la classe peut être instanciée dans ce qui suit 2 façons après l'importation:
const instance1 = new MyClass(param1, param2);
const instance2 = myClass(param1, param2);
En vscode, instance1
aura le soutien IntelliSense, mais instance2
ne sera pas. Comment puis-je documenter la fonction/export afin que les objets créés en utilisant le wrapper soient reconnus comme des instances de la classe?
Javascript parfois pas très bien documenté sur 'vscode', utilisez plutôt Typescript :( – Chris