我正在用Typescript创建简单的应用程序。我想在其中使用RxJ。通常在浏览器中,正如RxJ的文档所述,如果我使用CDN,则我将在全局范围内使用rxjs
名称空间。然后我就有可能通过这种方式分解它:
const { fromEvent } = rxjs;
...就是要使用它(例如fromEvent(button, 'click').pipe(...)
等)。当我编写用于电子的桌面应用程序时,我通过npm install rxjs
安装了rxjs。在这里我被困住了。无论我尝试以哪种方式将其导入到.ts文件,都会导致出现诸如“类型(...)没有属性/没有从event中导出成员”之类的错误。我尝试过:
import * as rxjs from 'rxjs';
import { rxjs } from 'rxjs';
import { rxjs } from 'rxjs/Rx';
import { fromEvent } from 'rxjs';
import { fromEvent } from 'rxjs/Rx';
import { fromEvent } from 'rxjs/fromEvent';
但是他们都不起作用。我也尝试过declare var rxjs
,但确实有效,但是如果我们丢失了所有类型的信息并且无法使用类型检查,那么使用静态类型的语言的实际意义是什么(据我的研究,RxJs本身就是编写的在Typescript中,因此导入所有类型信息应该没问题吗?
也许这是一个愚蠢的问题,我应该完全改变我的想法,如果是的话,请纠正我,但是如何将rxjs
命名空间导入打字稿?这样我可以编写与在浏览器中的.js中编写的代码相同的代码?