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 –