I飾らモデルクラスがあります。typescriptでジェネリック型のメタデータを取得できますか?
@Api('payments/deposit')
export class DepositsModel {
public id: number;
public created_at: Date;
...
角度成分のコンストラクタで、私は私のモデルクラスを使用するように指してデータサービスを注入していた:
...
public constructor(
private $api: GridApiService<DepositsModel>
...
) {
this.service = new GridService($api);
...
}
...
だから、私のクールなコンポーネントはクールなサービスを持って、魔女は、それが私の中で、モデルのメタデータを取得すると...
...知っているが、どのように私ができるべき作業データの種類を知っている私GridApiService?
@Injectable()
export class GridApiService<T>{
constructor(
$http: HttpClient,
) {
let api = Reflect.getMetadata('Api', T);
}
をそしてエラーメッセージました:私が試した「T」だけで型を参照するが、ここでの値として使用されています。
UPDATE
あなたが私に私GridApiServiceに初期化データを渡すために別の方法をアドバイスすることができ、魔女は新しいキーワードで作成されていない、DIを介して注入されなければなりませんか?
いや、私はサービスのホードを生成するが、普遍的なものを持っていないための方法を探していました... –
あなたはフレームワークの機能から進んでいく必要があり、フレームワークはそういうものを提供しません。インジェクタごとに複数の種類のGridApiServiceがある場合は、サブクラス化するか、またはT引数でインスタンス化されたファクトリ関数またはラッパークラスを注入する必要があります。これは潜在的なXYの問題であり、あなたがしようとしているものと望ましい解決策が異なる場合があります。そして、AOTもいくつかの制限を課すでしょう。 –
estus