获取一个泛型类型的类型名称是否可行?

14

我有一个方法签名为 execute<TResult>(): Observable<TResult>

如何获取TResult类型的名称?

例如:

execute<ViewModel> --> 我需要的结果是“ViewModel”。

1个回答

13
据我所知,无法获取TResult的名称,但如果您提供相应的构造函数,就可以获取名称。
声明:
execute<TResult>(ctor: { new (): TResult }) : <TResult> {
  console.log(ctor.name) //Prints out SomeClass
  return <any>null;
}

使用方法:

execute<SomeClass>(SomeClass);

谢谢!我不太确定那里发生了什么。您能否详细说明一下 new(): TResult 部分?我的第一个猜测是,这将创建一个匿名构造函数类,将其属性散布到一个新对象中,我们通过 ctor 参数访问该对象。 - Michael Kargl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接