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

问题描述 投票:3回答:1

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

@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类型的任何内容。

javascript angular typescript
1个回答
3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.