web-dev-qa-db-ja.com

angularコンポーネントのタイプ

angularコンポーネントクラスを型として参照できますか?Ionicはコンポーネントにanyを使用します。TypeScriptで宣言することは可能ですか?コンポーネントクラスのみを期待する引数タイプ?

私はこの質問を見ましたが、コンポーネントにはコンストラクターに共通するものは何もありません: パラメーターとしてクラスを渡すと「新規ではない」エラーが発生します

6
Ebuall

結局のところ、これはTypeScriptでは現在不可能です。デコレータはクラスの型を変更できません。つまり、型システムではデコレータは表示されません。
詳細については、こちらをご覧ください:

3
Ebuall

それらが動的に作成されるコンポーネントである場合、AngularはComponentRefクラスを提供します。

ここを参照してください: https://angular.io/api/core/ComponentRef

静的に宣言されたコンポーネントには、このクラスはありません。ただし、関連するコンポーネント/サービスにインポートする限り、必要に応じてコンポーネント識別子を型なし変数として渡すことができます。依存性注入を使用している場合、つまり、コンポーネントインスタンスをそのHostディレクティブに注入している場合、「type」はその名前が何であれ、次のようになります-

 import { Directive } from '@angular/core'
 import { MyNavigatorComponent } from '../components/my-nav.component'

 constructor (private navigator: MyNavigatorComponent) {
3
diopside