代码之家  ›  专栏  ›  技术社区  ›  Perrier

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

  •  3
  • Perrier  · 技术社区  · 7 年前

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

    @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方式,但即使在缩小代码后也必须工作。

    我曾尝试向构造函数添加一个新的字符串参数,但通过这种方式,角度注入器引发了一个异常,它无法找到类型字符串的任何内容。

    1 回复  |  直到 7 年前
        1
  •  3
  •   DoronG    7 年前

    好吧,泛型片段(T)并没有被转换成JavaScript,所以它实际上并不存在。这意味着您将无法直接使用t,可以说是作为“接口”使用。 有没有一种方法可以将T的实例或T的构造函数传递给CommonMasterdataProvider的构造函数?这样你就可以得到这个名字。