をオブジェクトに追加することはできません。インターフェイスは、私は活字体1.8.10でオブジェクトリテラルにインターフェイスを追加しようとしていますが、動作していないようリテラル
interface TestInterface {
value: string
}
let references = {
interfaceReference: TestInterface
}
私は、コードをコンパイルする場合、コンパイラ直前に正しく指定されていますが、エラーCannot find name "TestInterface"
がスローされます。私は、Angular 2プロジェクトの一部としてオブジェクトにインターフェイスを追加する必要があります。
私は抽象クラスとインターフェイスを交換した場合、すべてが動作するようです:
abstract class TestInterface {
value: string
}
let references = {
interfaceReference: TestInterface
}
しかしこれらの定義にインタフェースを使用することができるということはクリーンなコードになるでしょう。だから、私はこれを行う方法があることを願っています。
編集:私が何をしたいのか、なぜ私がインターフェイスを使用しているのかを明確にするために: 角度2には依存性注入メカニズムが含まれています。あなたは、ブートストラップコードでは、オブジェクトリテラルでの具体的なサービスの実装に抽象サービス定義からマッピングを指定することができます。
bootstrap(AppComponent, [ { provide: TestInterface, useClass: TestClass} ]
活字体は、インターフェース
あなたの答えは、私の特定のケースではTypeScriptの「制限」を示しているので、解答としてマークしています。さらに研究を重ねると、Angular 2はインタフェースをオブジェクト値として設定できないことを認識し、このような理由でOpaqueTokenを導入しました –