是否可以获取泛型类型的类型名称?

Roo*_*ian 9 generics reflection typename typescript typescript2.0

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

我如何获得TResult类型的名称?

例:

execute<ViewModel> - >"ViewModel"是我需要的结果.

Roo*_*ian 12

据我所知,它不可能得到名称TResult,但如果你提供相应的构造函数,你可以得到名称.

宣言:

execute<TResult>(ctor: { new (): TResult }) : <TResult> {
  console.log(ctor.name) //Prints out SomeClass
  return <any>null;
}
Run Code Online (Sandbox Code Playgroud)

用法:

execute<SomeClass>(SomeClass);
Run Code Online (Sandbox Code Playgroud)