dom
不是一个文件,而是一个文件夹,这样会有什么进口:) 试试这个:
import { WebSocketSubject } from '@reactivex/rxjs/src/observable/dom/WebSocketSubject';
进口会给你打字稿源文件,但我会建议安装[email protected]
而不是@reactivex/rxjs
所以你可以这样做:
import { WebSocketSubject } from 'rxjs/observable/dom/WebSocketSubject';
上面的导入将给你.js
文件,而不是.ts
文件。自动完成和所有好的TypeScript的东西仍然会工作,因为该软件包有.d.ts
文件!
一个提示:如果你有找到正确的导入路径问题:
- 转到
node_modules/[<organization_name>/]<package_name>
(组织名称是可选的,他们都开始@
)。
- 这是您的所有进口的起点,从那里您可以追加任何文件夹/文件路径到
[<organization_name>/]<package_name>
和进口应该工作。
但如果你只指向import语句[<organization_name>/]<package_name>
打字稿将从package.json
的main
财产拿起导入文件的真实路径。在@reactivex/rxjs
的情况下指向index.js
,该文件将再次执行require('./dist/cjs/Rx')
。因此,当您执行@reactivex/rxjs
时,路径将被解析为node_modules/@reactivex/rxjs/dist/cjs/Rx.js
。
希望这个解释不是让人困惑,但有时路径分辨率可能是:-x
这很丑,但确实有效!和它的node_modules,而不是npm_modules :-) –
现在,我想知道为什么他们建议使用@ReactiveX的语法,如果它不是必要的... –
对不起,错字那里...更新我的答案。我在第二个例子中正确写下了它! :D –