0

我对angular4中工厂提供者的参数感到困惑。假设我正在使用这样的工厂供应商

场景1

{ 
provide: PREFERRED_BOOKS, 
useFactory: () => { return 'foo@yahoo.com'; }, deps: [Book, BookService] 
}

现在,useFactory 提供程序是一个函数,我们返回一个字符串

情景 2

如果我做同样的事情

 { 
provide: PREFERRED_BOOKS,
 useFactory: preferredBooksFactory(), deps: [Book, BookService] 
}

function preferredBooksFactory() {
  return 'foo@yahoo.com';
}; 

我收到编译错误,我不应该收到编译错误,因为我所做的只是将一个函数传递给提供程序

情景 3

当我像这样改变我的功能时,它工作正常

export function preferredBooksFactory() {
  return (): string => {
    return 'foo@yahoo.com';
  };
};

谁能解释一下发生了什么,我错过了什么

4

0 回答 0