获取匿名对象类型的字符串名称?

时间:2018-01-26 13:53:23

标签: javascript angular typescript

我有许多后端控制器的通用提供程序,如下所示:

@Injectable()
export class CommonMasterdataProvider<T> {
    private readonly route:string = '/api/';

    constructor(private http:HttpClient) {
        this.route = this.route + T.name; //?? What can I use to get the type name here?
    }

我可以将它注入我的组件控制器,但如果我能得到匿名类型名称的名称会很好。 基本上我正在寻找c#nameof()运算符的TypeScript版本。或Javascript方式,但即使在缩小代码后它也必须工作。

我尝试在构造函数中添加一个新的字符串参数,但是这样Angular注入器抛出了一个异常,它找不到类型String的任何内容。

1 个答案:

答案 0 :(得分:3)

AFAIK,通用部分(T)没有被转换成JavaScript,所以它实际上不存在。这意味着您将无法直接使用T,除非可以说是“界面”。 有没有办法可以将T或T的构造函数的实例传递给CommonMasterdataProvider的构造函数?这样你就能得到这个名字。