export class Module {
static register<T>(provider: Array<Provider>): ModuleWithProviders {
return {
ngModule: T, // error type is being used as value
providers: provider
};
}
나는 모듈 및 제공을 알려줍니다이 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를 사용할 때 던지는 오류는 형식으로 만 사용되지만 값으로 사용됩니다. – user3205479
글쎄,'T'가 아니라'ngModule : klass'도 필요합니다. – jonrsharpe