首页 > 解决方案 > 在运行时获取 TypeScript 类的名称并在 URL 中使用它

问题描述

我已经看到几个关于在运行时获取 typescript 类的名称的问题。

目前我已经按照这个思路实现了一些东西。

export class ApiBase
{

  constructor()
  {
    const instance = new ApiBase();

    console.log(instance.constructor.name); 
    console.log(ApiBase.name);              
  }

}

但是,我想创建一个函数和/或继承此功能的类,并使用它将该类名插入到 URL 中。例如我有这个类:

export class WeatherForecast {
  public forecasts: WeatherForecast[];
  public ID: any;
  forecast: any = [];

  constructor(private http: HttpClient, private formBuilder: FormBuilder, private router: ActivatedRoute) {
    http.get<any[]>('API/' + **CLASSNAMEHERE**  ).subscribe(result => {
      this.forecast = result;
    }, error => console.error(error));
  }
}

通过这样做,我应该能够将该服务抽象到足以能够将其应用于任何控制器或 API 而不仅仅是我自己的。我在正确的轨道上吗?我该如何完成这个?

标签: angulartypescripthttpinheritanceget

解决方案


推荐阅读