代码之家  ›  专栏  ›  技术社区  ›  Evan Larsen

如何从Aurelia Store Subscribe方法导入Typescript订阅类型?

  •  1
  • Evan Larsen  · 技术社区  · 7 年前

    我正在跟踪 Aurelia Store 关于如何订阅商店变更流。当我导入typescript时 Subscription rxjs 我得到一个typescript编译错误: TS2322: Type 'import("project\node_modules\aurelia-store\node_modules\rxjs\internal\Subscription") is not assignable to type import("project\node_modules\rxjs\internal\Subscription")

    代码示例:

    // app.ts
    import { autoinject } from "aurelia-dependency-injection";
    import { Store } from "aurelia-store";
    import { Subscription } from 'rxjs';
    import { State } from "./state";
    
    @autoinject()
    export class App {
    
      public state: State;
      private subscription: Subscription;
    
      constructor(private store: Store<State>) {}
    
      bind() {
        this.subscription = this.store.state.subscribe(
          (state) => this.state = state
        );
      }
    
      unbind() {
        this.subscription.unsubscribe();
      }
    }
    

    我试过了 import { Store, Subscription } from 'aurelia-store' 但这也不管用。

    编辑:

    你的rxjs版本(来自Aurelia和你安装的rxjs)是 一样吗?

    因此,aurelia store/package.json的rxjs版本为“^6.2.2”,myprojects package.json的版本为“6.3.2”。因此,我卸载了我的rxjs版本并安装了6.2.2版本。现在typescript发出以下错误消息:

    TS2322:类型 '导入(“项目/node\u模块/aurelia商店/node\u模块/rxjs/internal/Subscription”).Subscription' '导入(“项目/节点\模块/rxjs/internal/Subscription”).Subscription'。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Evan Larsen    7 年前

    所以,我不知道为什么这是有效的,但我回答我自己的问题,以防别人遇到这个问题。

    1. 我重新安装了rxjs
    2. 我删除了我的 node_modules 文件夹
    3. 我跑了 npm clean cache --force
    4. npm install

    然后一切又开始运转:)

    推荐文章