2017-09-05 28 views
0

JSONを生成するコンポーネントのインターフェイスを作成します。私は、入力としてタイプを受け入れ、出力を生成するために、各実装するコンポーネントを強制したい:Output()とInput()デコレータのインターフェイス方法を教えてください。

import { EventEmitter, Output, Input } from '@angular/core'; 
import { Foo, FooConfiguration } from '../../interfaces'; 
interface FooConfigurator { 
    @Output() fooWasConfigured: EventEmitter<FooConfiguration>; 
    @Input() fooInstance: Foo; 
} 

その後、FooConfiguratorを実装するコンポーネントは、次のことを確実にするでしょう:それは無効なので

import { EventEmitter, Output, Input } from '@angular/core'; 
import { Foo, FooConfiguration, FooConfigurator } from '../../interfaces'; 
class ConcreteFooConfigurator implements FooConfigurator { 
    @Output() fooWasConfigured: EventEmitter<FooConfiguration>; 
    @Input() fooInstance: Foo; 
} 

このインターフェース定義が失敗しました構文。どのようにすればいいのですか?

答えて

0

現在、デコレータとTypeScriptをインタフェースすることは不可能です。次の最良の方法は、型のインターフェイスとコメントの追加だけです。

interface FooConfigurator { 
    fooWasConfigured: EventEmitter<FooConfiguration>; 
    fooInstance: Foo; 
} 

これは本質的にはかなりの必要性をカバーし、持つEventEmitterは確実にそれがイベントを発する必要があるように見える、とfooInstanceで、このような性質を持っているクラスを指示します。 これらは、どのようにを使用すべきかは、コメントレルムにあります。

関連する問題