angular DIマニュアルは、次の例があります。<ClassName>はtypescriptでキャストを実行しますか?
let mockService = <HeroService> {getHeroes:() => expectedHeroes }
は今mockService
HeroService
のインスタンスですか?
はそれを明確に役立ちます場合は、別のコードスニペットです:
it('should have heroes when HeroListComponent created',() => {
let hlc = new HeroListComponent(mockService);
expect(hlc.heroes.length).toEqual(expectedHeroes.length);
});
私はmockService
はHeroListComponent
がそれコンストラクタこのような場合を想定しているため、HeroService
実装やインタフェースのインスタンスでなければならないと思います。
インスタンスによってはどういう意味ですか? 'prototype'インスタンスのように?タイプキャスティングはランタイムに影響しません –
コードを追加して投稿を更新します – Aravind
TypeScriptには「キャスト」がありません。それは "タイプアサーション"を持っています。 '{}'オブジェクトの型が 'HeroService'であると主張しています。アサーションが適用できない場合、アサーションが適用されない場合、アサーションがアサートされるタイプと互換性がない場合、アサーションは失敗します。 'mockService'は' HeroService'型であると見なされますが、それはそれがいくつかのクラス 'HeroService'のインスタンスであることとは別です。 –