首页 > 解决方案 > Angular 自定义库 - 不是函数错误

问题描述

我创建了一个自定义库,构建了它,并将其添加到我的主项目中。我已按照角度文档中显示的创建说明进行操作。当我尝试调用库中的函数时,它给了我错误:

TypeError: this.mmLibSvc.isAuthenticated() is not a function

这是我的图书馆 MmLib 中的服务类:

export class MmLibService {
  isAuthenticated() { return false; }   
}

public_api.ts:

export * from './lib/mm-lib.service';

mm-lib.module.ts:

@NgModule({
  declarations: [MmLibComponent],
  imports: [ ],
  exports: [MmLibComponents]
})
export class MmLibModule {}

我已经构建了库并将 MmLib 文件夹添加到我的项目下的 node_modules 文件夹中。

在我的项目下:app.module.ts:

import { MmLibService } from 'mm-lib'
...
providers: [MmLibService, ...] ,
imports: [MmLibModule, ...]
...

项目授权服务:

import { MmLibService } from 'mm-lib';

constructor(private mmLibSvc: MmLibService){}

public useAuth() {
  return this.mmLibSvc.isAuthenticated();
}

错误发生在

return this.mmLibSvc.isAuthenticated();

我已将服务包含在 app.module.ts 下。模块和服务导入并被识别,甚至在vscode中用I F12显示函数定义。为了在自定义库中使用函数,我需要做些什么特别的事情吗?我知道图书馆正在工作,因为我可以使用它的组件之一。

标签: angularshared-libraries

解决方案


推荐阅读