【发布时间】:2019-02-23 18:08:04
【问题描述】:
我正在关注Aurelia Store 的文档,了解如何订阅商店更改流。当我从rxjs 导入打字稿Subscription 类型时,我收到打字稿编译错误:
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',但这也不起作用。
编辑:
针对 Pierre-Luc Champigny 的问题:
您的 rxjs 版本(来自 Aurelia 和您安装的 rxjs)都是 一样吗?
所以,aurelia-store/package.json 的 rxjs 版本为“^6.2.2”,而我的项目 package.json 为“6.3.2”。所以,我卸载了我的 rxjs 版本并安装了 6.2.2 版本。现在打字稿给出了这个错误信息:
TS2322:类型 'import("project/node_modules/aurelia-store/node_modules/rxjs/internal/Subscription").Subscription' 不可分配给类型 'import("project/node_modules/rxjs/internal/Subscription").Subscription'。 属性“_parent”受保护,但类型“订阅”不是类 源自“订阅”。
【问题讨论】:
-
您的 rxjs 版本(来自 Aurelia 和您安装的 rxjs)是否相同?
-
Aurelia rxjs 是 "^6.2.2" 而我的是 "6.3.2"
标签: typescript aurelia aurelia-store