我已经包裹contructors以下高阶函数:如何记录JavaScript高阶函数?
/**
* 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);
}
所以,如果我有一个类MyClass
,我可以做到以下几点:
exports.MyClass = MyClass;
exports.myClass = constructorWrapper(MyClass);
现在的类可以在下面的实例2种方式导入后:
const instance1 = new MyClass(param1, param2);
const instance2 = myClass(param1, param2);
在vscode中,instance1
将具有智能感应支持,但instance2
不会。如何记录函数/导出,以便使用包装器创建的对象被识别为类的实例?
JavaScript有时并不真正记录在'vscode'上,使用Typescript代替:( – Chris