Rxjs 如何在TypeScript中导入WebSocketSubject?
按照建议,我使用Rxjs 如何在TypeScript中导入WebSocketSubject?,rxjs,rxjs5,Rxjs,Rxjs5,按照建议,我使用 npm install @reactivex/rxjs@5.0.0-beta.11 我可以通过这种方式导入几乎所有内容: import { Observable, Subscriber } from '@reactivex/rxjs'; 但不是WebSocketSubject。我试过: import { WebSocketSubject } from '@reactivex/rxjs'; import { WebSocketSubject } from '@reactive
npm install @reactivex/rxjs@5.0.0-beta.11
我可以通过这种方式导入几乎所有内容:
import { Observable, Subscriber } from '@reactivex/rxjs';
但不是WebSocketSubject。我试过:
import { WebSocketSubject } from '@reactivex/rxjs';
import { WebSocketSubject } from '@reactivex/rxjs/observable/dom';
。。。和许多其他变体。dom不是一个文件,而是一个文件夹,因此没有任何内容可导入:
试试这个:
从'@reactivex/rxjs/src/observable/dom/WebSocketSubject'导入{WebSocketSubject}
导入将为您提供TypeScript源文件,但我建议您安装rxjs@5.0.0-beta.11而不是@reactivex/rxjs,因此您可以执行以下操作:
从“rxjs/observable/dom/WebSocketSubject”导入{WebSocketSubject}
上面的导入将为您提供.js文件,而不是.ts文件。自动完成和所有优秀的TypeScript内容仍然可以工作,因为包中有.d.ts文件
还有一个提示:如果在查找正确的导入路径时遇到问题:
转到节点_modules/[/]组织名称是可选的,它们都以@开头。
这是所有导入的起点,从这里您可以将任何文件夹/文件路径附加到[/],导入应该可以正常工作。
但是,如果只将import语句指向[/]Typescript,则会从package.json的主属性中获取导入文件的实际路径。在@reactivex/rxjs的情况下,它指向index.js,并且该文件将再次执行要求的“/dist/cjs/Rx”。因此,当您执行@reactivex/rxjs时,路径将解析为node_modules/@reactivex/rxjs/dist/cjs/Rx.js
希望这一解释不会令人困惑,但路径分辨率有时可能是:-xdom不是一个文件,而是一个文件夹,因此不会有任何要导入的内容:
试试这个:
从'@reactivex/rxjs/src/observable/dom/WebSocketSubject'导入{WebSocketSubject}
导入将为您提供TypeScript源文件,但我建议您安装rxjs@5.0.0-beta.11而不是@reactivex/rxjs,因此您可以执行以下操作:
从“rxjs/observable/dom/WebSocketSubject”导入{WebSocketSubject}
上面的导入将为您提供.js文件,而不是.ts文件。自动完成和所有优秀的TypeScript内容仍然可以工作,因为包中有.d.ts文件
还有一个提示:如果在查找正确的导入路径时遇到问题:
转到节点_modules/[/]组织名称是可选的,它们都以@开头。
这是所有导入的起点,从这里您可以将任何文件夹/文件路径附加到[/],导入应该可以正常工作。
但是,如果只将import语句指向[/]Typescript,则会从package.json的主属性中获取导入文件的实际路径。在@reactivex/rxjs的情况下,它指向index.js,并且该文件将再次执行要求的“/dist/cjs/Rx”。因此,当您执行@reactivex/rxjs时,路径将解析为node_modules/@reactivex/rxjs/dist/cjs/Rx.js
希望这一解释不会令人困惑,但路径分辨率有时可能是:-x这很难看,但确实有效!还有它的节点单元模块,而不是npm单元模块:-现在我想知道,如果没有必要的话,为什么他们会建议使用@ReactiveX的语法…对不起,输入错误。。。更新了我的答案。在第二个示例中,我确实写对了!:D@BillBarnes是吗?认为他们的自述文件不是这样的:它适用于Typescript!这是丑陋的,但它的工作!还有它的节点单元模块,而不是npm单元模块:-现在我想知道,如果没有必要的话,为什么他们会建议使用@ReactiveX的语法…对不起,输入错误。。。更新了我的答案。在第二个示例中,我确实写对了!:D@BillBarnes是吗?认为他们的自述文件不是这样的:它适用于Typescript!