静态接收'解析符号值'编译Angular 2项目时的相关错误消息

时间:2017-12-30 17:30:04

标签: angular typescript compilation angular2-services

我正在使用一些旧模块:angular-2-local-storage。 它被实例化的方式如下:

const LOCAL_STORAGE_SERVICE_CONFIG_TOKEN: string = 'LOCAL_STORAGE_SERVICE_CONFIG';
export const LOCAL_STORAGE_SERVICE_CONFIG = new OpaqueToken(LOCAL_STORAGE_SERVICE_CONFIG_TOKEN);

...还有我的代码:

@NgModule({
  .....
  providers: [
      LocalStorageService,
    {
      provide: LOCAL_STORAGE_SERVICE_CONFIG,
      useValue: { prefix: 'miswap' }
    },
    {

但在构建我的项目时,我收到了这个:

错误:静态解析符号值时遇到错误。只能初始化变量和常量,因为模板编译器需要此变量的值(原始.ts文件中的位置2:22),解析符号LOCAL_STORAGE_SERVICE_CONFIG .... < / p>

这是我完全迷失的地方。

此问题看起来像OpaqueToken弃用mentioned here。但是,我的项目是Angular 2,而不是4。

那么,我会错过什么吗?这是因为某些角度cli版本错了吗?甚至不知道在哪里找到解决方案!

这可能是我的package.json的一部分,如果这可能会有所帮助:

  "devDependencies": {
    "@angular/compiler-cli": "^2.0.0",
    "@angular/platform-server": "2.0.0",
    "@angular/tsc-wrapped": "0.3.0",
    "@types/async": "2.0.31",
    "@types/core-js": "0.9.32",

1 个答案:

答案 0 :(得分:0)

只是一个想法: 提供之前LOCAL_STORAGE_SERVICE_CONFIG的价值是多少?在宣布console.log(LOCAL_STORAGE_SERVICE_CONFIG)之前尝试@NgModule。如果是undefined,您要么没有正确导入它,所以缺少值,要么new OpaqueToken()出现问题 - OpaqueToken是否未定义?