lodash隐式给出“ _不是函数”错误

时间:2019-10-23 14:56:18

标签: javascript angular typescript lodash

当尝试使用lodash作为隐式时,会出现错误“ _不是函数”

import { Component } from '@angular/core';
import * as _ from "lodash";

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  testImplicit(){

    try{
      _(["a", "b", "c"]).filter(itm => itm == "b")
      alert("ok")
    }
    catch(err){
      alert("error : " + err)
    }


  }

  testExplicit(){

    _.filter(["a", "b", "c"], itm => itm == "b")
    alert("ok")
  }


}

您可以在此处的stackblitz上查看示例:https://stackblitz.com/edit/angular-zrxrru

1 个答案:

答案 0 :(得分:2)

Lodash的_不是函数,而是对象,就像错误消息所指示的一样。

您仅在代码的两个位置使用Lodash,并且其中只有一个使用_作为函数。这行代码:

_(["a", "b", "c"]).filter(itm => itm == "b")

应为:

_.filter(["a", "b", "c"], itm => itm == "b")