alv*_*peo 17 typescript rxjs5 angular
我正在使用这个伟大的回购用于我的角度2测试项目(TypeScript) - https://github.com/qdouble/angular-webpack2-starter.我需要使用Observable.of(..).当我尝试导入它时:
import { Observable } from "rxjs/Observable";
import { of } from 'rxjs/observable/of';
Run Code Online (Sandbox Code Playgroud)
我明白了:
类型'typeof Observable'上不存在属性'of'.
我也尝试了以下方式:
import { Observable } from "rxjs/Observable";
import { of } from 'rxjs/add/observable/of'; // notice 'add'
Run Code Online (Sandbox Code Playgroud)
我有:
node_modules/rxjs/add/observable/of"'没有''的导出成员'.
那么,如何为Observable导入这个Of()静态方法???
Noé*_*aün 23
您不必导入{of}从'rxjs/add/observable/of'.你可以直接使用
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/of";
Run Code Online (Sandbox Code Playgroud)
或者您可以 不好的做法Observable从捆绑所有运算符的"rxjs/Rx" 导入.
import { Observable } from "rxjs/Rx";
Run Code Online (Sandbox Code Playgroud)
来自https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
从版本5.5开始,我们已经发布了"可管道运算符",可以在rxjs /运算符中访问(注意复数"运算符").与rxjs/add/operator/*中的"patch"运算符相比,这些只是一种更好的方法来引入所需的运算符.
既然"修补"进口将被弃用,那么使用严格的进口会更好.
import { of as observableOf } from 'rxjs/observable/of'
Run Code Online (Sandbox Code Playgroud)
并使用它
const myObs$: Observable<number> = observableOf(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
Mob*_*ent 15
从RxJS 6开始,由于更直观的API表面,导入大大简化并且现在减少了混乱:
创建方法如of直接导入'rxjs':
import { of } from 'rxjs';
所有可管道运营商都是从'rxjs/operators',例如:
import { tap, map } from 'rxjs/operators';
如果您直接从RxJS 5更新,您甚至可以使用RxJS的TSLint规则,它将自动修复您的导入到更新的简化API:
npm i -g rxjs-tslintrxjs-5-to-6-migrate -p [path/to/tsconfig.json]| 归档时间: |
|
| 查看次数: |
18412 次 |
| 最近记录: |