2016-07-04 4 views
3

typescriptについて私が好きなものの1つは、その型の安全性であり、一貫して使用します。同じ型のコンポーネントでOnInitとOnChangesを実装する方法

Typescriptは複数の継承をサポートしていないため、Angular 2コンポーネントクラスをOnInitOnChangesで同時に拡張するにはどうすればよいですか?

私はそれが継承を宣言せずに動作することを知っていますが、私は派手な行なしで自分のコードが好きです。

+1

'OnInit'と' OnChanges'はインタフェースなので、コンポーネントはこれらのインタフェースを継承せず実装します。クラスは、必要な数のインタフェースを実装できます。 – Blackus

+0

それは私が思ったことですが、WebStormのF12(つまりgotoの定義)が両方ともlifecycle_hooks.d.tsの抽象クラスとして実装されている場合などです。私はAngular 2 RC2を使用しています。 – hholtij

+0

たぶんDartソースが見つかりましたhttps://github.com/angular/angular/blob/39ecd01b8684370666586ba35a4a12c0f109807d/modules/%40angular/core/src/metadata/lifecycle_hooks.ts#L130 Dartにはインターフェースがありませんが、クラスを使用できますインタフェースとして実装し、インタフェースのように実装します。 –

答えて

7

OnInitOnChangesは、クラスが、インターフェイスではありませんので、あなたのコンポーネントが継承したがこれらのインタフェースを実装していません。

クラスは必要な数のインターフェイスを実装できるため、同じコンポーネントにOnInitOnChangesの両方のインターフェイスを実装することに問題はありません。例えば

:詳細については

class FooComponent implements OnInit, OnChanges { 
} 

は、Angular Lifecycle Hooks guideを見ています。

関連する問題