网站搜索

Ionic 框架 - 在低版本 TypeScript 上 Ngrx effects 无法工作


我有一个 Ionic 3 应用,在其中我使用了 ngrx/store 和 ngrx/effects。但每次我尝试运行应用时,它都会显示以下错误:

TypeScript 错误 类型字面量中的计算属性名称必须直接引用内置符号。...:找不到名称 'any'。

它指的是我 node modules 中的这个文件夹 node_modules/@ngrx/effects/src/on_run_effect.d.ts

到下面这段代码:

export declare function isOnRunEffects(sourceInstance: {
    [onRunEffectsKey]?: onRunEffectsFn;
}): sourceInstance is OnRunEffects;

这个问题可以通过安装更高版本的typescript来解决,但目前我使用的是2.6.1,但是当我将其升级到更高版本的typescript时,我的应用在生产环境中无法正常工作,甚至console.log方法也无法使用。

下面是我的ionic 信息:

Ionic:

   ionic (Ionic CLI)  : 4.0.0-rc.13 (/home/clifford/.npm-global/lib/node_modules/ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : browser 5.0.4

System:

   Android SDK Tools : 26.1.1
   NodeJS            : v6.12.2 (/usr/local/bin/node)
   npm               : 4.6.1
   OS                : Linux 4.13

Environment:

   ANDROID_HOME : /home/clifford/Android/Sdk

如果有人能帮忙,将不胜感激。提前谢谢。

答案#1

可能你正在使用最新版本,它内部使用的是 TypeScript 3.1.x。请尝试降级到针对 TypeScript 2.6.x 的特定版本(5.2.0),然后检查一下。

npm install @ngrx/[email  @ngrx/[email  --save