typescript - Är det möjligt att få typnamnet på en generisk typ?


Jag har en metodsignatur av execute<TResult>(): Observable<TResult>

Hur får jag namnet på TResult-typen?

Exempel:

execute<ViewModel> --> "ViewModel" är resultatet jag behöver.

Svar #1

Så vitt jag vet är det inte möjligt att få namnet på TResult, men om du tillhandahåller motsvarande konstruktionsfunktion kan du få namnet.

Förklaring:

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

Användning:

execute<SomeClass>(SomeClass);

Relaterade artiklar