1
角度/タイプスクリプトでType<T>
で表されるタイプが特定のクラスを拡張するかどうかを実行時にチェックする方法BaseClass
?タイプ<T>が特定のクラスを拡張しているかどうかを確認
例えば、ApplicationRef.componentTypes
を使用してType<any>[]
を取得したとします。
const types: Type<any>[] = this.applicationRef.componentTypes;
this.navigationComponents = types.filter((type: Type<any>) => {
// Here we need check whether type extends BaseClass
});
上記のチェックのためのコードがどうあるべきか:今、我々はそれを反復処理し、現在のType<any>
は、いくつかのBaseClass
を拡張するかどうかを確認したいですか?
ニース、ありがとうございました!私が誤解されていないなら、 'BaseClass'がクラスであり、それがインターフェースであれば動作しません。インターフェイスで動作させる方法はありません。 –
はい、それはクラスでなければなりませんが、コンストラクタだけを 'Type'に割り当てることができます。とにかく、タイプシステムが消去されるので、インタフェースは実行時には存在しません。 –
cartant