use*_*157 2 generics typescript
我如何获取传递的泛型参数的类名
class Sample<T>{
public getTypeName(): void {
alert(T.name)
//or
alert(new T().constructor.name)
}
}
class Person {
public FullName:string
}
new Sample<Person>().getTypeName()
Run Code Online (Sandbox Code Playgroud)
我需要将输出打印为“人”?
虽然在编译器时擦除了泛型类型,但您可以传入类的构造函数并获取其名称:
class Sample<T>{
public constructor(public tCtor: new (...args:any[]) => T){}
public getTypeName(): void {
console.log(this.tCtor.name)
}
}
class Person {
public FullName!:string
}
new Sample(Person).getTypeName()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |