Observable <T> не является классом, производным от Observable <T>

При попытке расширить класс из класса вnode_modules компилятор машинописи выдает ошибку, говорящую:

Property 'source' is protected but type 'Observable<T>' is not a class derived from 'Observable<T>'.

Это происходит только тогда, когда базовый класс изnode_module.

Базовый класс выглядит так:

import {Observable} from "rxjs/Observable";
export abstract class TestBase<T> {

    request(options: any):Observable<T> {
        return Observable.throw(new Error('TestBase is abstract class. Extend it and implement own request method'));
    }
}

Подклассы это в проекте:

import {Observable} from "rxjs/Observable";
import {TestBase} from "@org/core";

class SocketResponse {

}

class Socket {
    request(): Observable<SocketResponse> {
        return new Observable.of(new SocketResponse());
    }
}

export class Sub extends TestBase<SocketResponse> {
    request(options:any):Observable<SocketResponse> {
        return new Socket().request();
    }
}

Если базовый класс (TestBase) перемещен изnode_module к самому проекту и изменить импорт, чтобы выглядеть какimport {TestBase} from "./base"; Ошибка исчезает.

Это связано с тем, что компиляторы создают типы в разных областях для каждого модуля? Я полностью потерян здесь.

Обновить:

Кажется, это происходит только при связыванииnode_modules сnpm link, Похоже, что один из возможных обходных путей на данный момент состоит в том, чтобы вместо возврата типа в базовом классе вернуть интерфейс.

Более подробную информацию можно найти здесь:

https://github.com/Microsoft/TypeScript/issues/6496

https://github.com/ReactiveX/rxjs/issues/1744

Ответы на вопрос(8)

Ваш ответ на вопрос