我正在尝试使用MEAN堆栈和Typescript进行一个小小的项目,我似乎遇到了一个关于Typescript的问题,没有找到emit()和Array.sum()方法的类型. 这是我下面的代码…… let options: mongoose.ModelMapReduceOp
这是我下面的代码……
let options: mongoose.ModelMapReduceOption<IInvoice, any, any> = { map: () => { emit(this.customer, this.total); }, reduce: (key, values) => { return Array.sum(values); }, out: { replace: "map_reduce_customers" }, verbose: true };
我在NPM上使用打字包,并在我的项目中安装了mongodb以及mongoose包的类型.在这两种方法下有红色波浪形,但是当我跑步时应用程序运行正常.
是的,它正确地转换为有效的JavaScript.我只想知道是否有一个打字定义我缺少了Typescript来获取这两种方法?
您可以像这样声明emit函数declare function emit(k, v);
然后使用非箭头函数(能够在map函数中使用“this”)
map: function map() { emit(this.customer, this.total); }
据我所知,JS中不存在Array.sum.如果它是由库提供的,您可能需要安装该库的类型.