私は/注入注射を使用して単純なサービスがあります。ここに新しい角度はルートからのインポートを認識しますか?
import {Inject, Injectable} from '@angular/core';
import {APP_CONFIG} from '../../config/app-config.module';
import {AppConfig} from '../models/core/app-config.model';
@Injectable()
export class AuthService {
constructor(@Inject(APP_CONFIG) private config:AppConfig) {
}
}
何も、しかし-as我々は知っている - 私はInject, Injectable
をインポートする必要があります。
ルートモジュールにInject, Injectable
をインポートしたとしても、ファイル内にインポートする必要がありました。
OK。
しかし、今私は、開発者がルートフォルダにいくつかのRXJS演算子をインポート状況(コードは私ではない)に面しています:
rxjs-imports.ts
import 'rxjs/add/operator/filter'
import 'rxjs/add/operator/do'
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch'
import 'rxjs/add/operator/shareReplay'
import 'rxjs/add/operator/distinctUntilChanged'
import 'rxjs/add/operator/pluck'
を
app.module.ts
にファイルをインポートしました。
import './rxjs-imports';
そして今、彼は別のコンポーネント/サービスでそれらをインポートせずに、これらの演算子を使用することができます。
import {Observable} from 'rxjs/Observable';
//no imports for operators
public get<T>(name: string) :Observable<T>{
return this.subj.pluck("d"); <---- how does it knows pluck ?
}
質問:(!)私は理解していない
- それはどのように働いて来ますか?私は実際にObservable
プロトタイプにパッチを適用し、指定事業者とそれを拡張し、そのため、あなたのコード内のすべてのObservable
でこれらの演算子を使用することができることにあるファイルのものの結果をインポートするコンパイラがpluck
オペレータに