Я пытаюсь использовать определения RxJs в приложении TypeScript, которое я пишу. Я импортировал defs, и теперь я пытаюсь обновить тему.TypeScript - не может «новый» интерфейс для существующего типа
this.stream = new Rx.Subject();
Однако, когда я пытаюсь это сделать, я получаю следующее сообщение об ошибке.
Ошибка 6 Свойство «Тема» не существует на значение типа «{ Внутренности: {(наследует ребенок: Функция, родитель: Функция): Функция; addProperties (obj: Object, ... sourcces: Object []): void; addRef (xs: Rx.IObservable, r: {getDisposable(): Rx._IDisposable;}): Rx.IObservable; }; Наблюдатель: {create (onNext: (значение: any) => void, onError ?: (exception: any) => void, onCompleted ?:() => void): Rx.IObserver; fromNotifier (обработчик: (уведомление: Rx.INotification) => void): Rx.IObserver; }; }
Когда я смотрю на DEFS типа для этого я могу видеть, что класс Subject был определен как интерфейс
export interface Subject {
(): ISubject;
create(observer: IObserver, observable: IObservable): ISubject;
}
Может кто-нибудь сказать мне, как я могу создать экземпляр этого субъекта класса поскольку я не могу найти способ сделать это. В настоящее время используется TS 9.1.1. Я думал, что (): ISubject может сделать это, но, похоже, не имеет никакого влияния.
Я знаю, что некоторые предложения состоят в том, чтобы определить класс вместо этого, но тогда мне нужно будет реализовать все методы из базовых интерфейсов, чтобы это было огромно, поскольку оно наследуется от IObservable.
Вы не можете создать интерфейс. Есть ли какой-то класс, который является «субъектом»? – WiredPrairie
Это файл определения TS, у RxJs есть функция Subject ctor, которую вы можете обновить, но я сражаюсь с системой типов здесь. – user231300
Откуда вы взяли файл def? Это не текущая версия из типично типизированных библиотек GitHub. – WiredPrairie