Я следую документации для Aurelia Store о том, как подписаться на поток изменений магазина.Когда я импортирую машинопись Subscription
type из rxjs
, я получаю ошибку компиляции машинописи: 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", а мои проекты package.json - "6.3.2",Итак, я удалил свою версию rxjs и установил версию 6.2.2.Теперь машинопись выводит это сообщение об ошибке:
TS2322: Тип 'import ("project / node_modules / aurelia-store / node_modules / rxjs / internal / Subscription"). Подписка "не может быть назначена типу"импорт ( "проект / node_modules / rxjs / внутренняя / подписка"). подписка.Свойство «_parent» защищено, но тип «Подписка» не является классом, производным от «Подписка».