如何在 TypeScript 中导入 WebSocketSubject?
How do I import WebSocketSubject in TypeScript?
按照建议我使用
安装
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
不是一个文件,而是一个文件夹,所以没有什么可以导入的:)
试试这个:
import { WebSocketSubject } from '@reactivex/rxjs/src/observable/dom/WebSocketSubject';
导入将为您提供 TypeScript 源文件,但我建议安装 rxjs@5.0.0-beta.11
而不是 @reactivex/rxjs
,因此您可以这样做:
import { WebSocketSubject } from 'rxjs/observable/dom/WebSocketSubject';
上面的导入将为您提供 .js
文件,而不是 .ts
文件。自动完成和所有好的 TypeScript 东西仍然可以工作,因为这个包有 .d.ts
个文件!
另一个提示:如果您在寻找正确的导入路径时遇到问题:
- 转到
node_modules/[<organization_name>/]<package_name>
(组织名称是可选的,它们都以@
开头)。
- 这是您所有导入的起点,从那里您可以将任何 folder/file 路径附加到
[<organization_name>/]<package_name>
并且导入 应该 工作。
但是 如果你只指向 [<organization_name>/]<package_name>
的导入语句,Typescript 将从 main
[= package.json
的 58=]。在 @reactivex/rxjs
的情况下,它指向 index.js
并且该文件将再次执行 require('./dist/cjs/Rx')
。因此,当您执行 @reactivex/rxjs
时,路径会解析为 node_modules/@reactivex/rxjs/dist/cjs/Rx.js
.
希望这个解释不会造成混淆,但路径解析有时可以是 :-x
按照建议我使用
安装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
不是一个文件,而是一个文件夹,所以没有什么可以导入的:)
试试这个:
import { WebSocketSubject } from '@reactivex/rxjs/src/observable/dom/WebSocketSubject';
导入将为您提供 TypeScript 源文件,但我建议安装 rxjs@5.0.0-beta.11
而不是 @reactivex/rxjs
,因此您可以这样做:
import { WebSocketSubject } from 'rxjs/observable/dom/WebSocketSubject';
上面的导入将为您提供 .js
文件,而不是 .ts
文件。自动完成和所有好的 TypeScript 东西仍然可以工作,因为这个包有 .d.ts
个文件!
另一个提示:如果您在寻找正确的导入路径时遇到问题:
- 转到
node_modules/[<organization_name>/]<package_name>
(组织名称是可选的,它们都以@
开头)。 - 这是您所有导入的起点,从那里您可以将任何 folder/file 路径附加到
[<organization_name>/]<package_name>
并且导入 应该 工作。
但是 如果你只指向 [<organization_name>/]<package_name>
的导入语句,Typescript 将从 main
[= package.json
的 58=]。在 @reactivex/rxjs
的情况下,它指向 index.js
并且该文件将再次执行 require('./dist/cjs/Rx')
。因此,当您执行 @reactivex/rxjs
时,路径会解析为 node_modules/@reactivex/rxjs/dist/cjs/Rx.js
.
希望这个解释不会造成混淆,但路径解析有时可以是 :-x