私はAngular 2.0 docs約依存性反転をと読んできました。私はまたonline examplesも探しています。角度2.0 DIは抽象化に依存できますか?
私の理解では、@injectable
デコレータは、emitDecoratorMetadata
フラグを持つTypeScriptコンパイラを使用して、依存関係を解決するために使用されるメタデータを作成します。例えば、以下のクラスを取る:
活字体のコンパイラはDataService
クラスはタイプHttp
とコンストラクタの引数を持つメタデータを経由して宣言するemitDecoratorMetadata
を使用しています。
我々はそれが@App
または@Component
デコレータでProvides
オプションを使用して、いくつかのコンポーネントに注入する必要があることを示すことができ@Injectable
を使用して、クラスの依存関係を宣言した後。
私はemitDecoratorMetadata
の行動を認識していると私はそれがインターフェイスのためのメタデータを発することができないことを知っています。したがって、私はIHttp
代わりのHttp
に依存しないことを前提としています
は私の仮定が正しいですか? “Depend upon Abstractions. Do not depend upon concretions.”に頼ることはできますか、それは現時点では不可能なことですか?私はemitDecoratorMetadata
がシリアル化インターフェイスを使用できるようになるとすぐに修正されると考えています。
文字列を使用する場合、文字列を実際の型にマップする方法と場所はどこですか? –
'(' someName '、{useClass:Http}) ')'コンストラクタ '@Inject(' someName ')http:IHttp'で' bootstrap() 'またはコンポーネントの型をプロバイダに追加するのではなく、 –