export class Module {
static register<T>(provider: Array<Provider>): ModuleWithProviders {
return {
ngModule: T, // error type is being used as value
providers: provider
};
}
は、私は、そのモジュールに登録するモジュールとプロバイダーに指示しますが、私はこの使用してtypescriptですジェネリック医薬品に を行う方法を確認していないこのModule.register<AboutModule>([AboutService])
のようなものでしたいずれかの助けを持っているしたいと思いますこれで私。ジェネリック
また、他の型ではなく型だけを受け入れるためには、どの型をparam型にするべきですか。私はクラスの型だけを受け入れるパラメータを持っているとします。
stats(list: ClassType){} // something like this
stats(list: any){} // currently im using this, how should I restrict param only to types.
何か助けていただければ幸いです。
export type Abstract<T = any> = Function & { prototype: T };
export type Instantiable<T = any> = new (...args: any[]) => T;
export type Class<T = any> = Abstract<T> | Instantiable<T>;
出典:
どうすればいいですか?(klass:typeof T、provider:Array)?そして、それを 'register(AboutModule、[AboutService])'と呼び、 'T'は最初のパラメータから推論します。 –
jonrsharpe
@jonrsharpe私がklassを使うときは:typeof T throwingエラーは型としてしか参照されていませんが、値として使用されます – user3205479
'T'ではなく' ngModule:klass'も必要です。 – jonrsharpe