typescript - 获取传递给 typescript 的泛型参数的类名

标签 typescript generics

如何获取传递的泛型参数的类名

class Sample<T>{ 
    public getTypeName(): void { 
        alert(T.name)
        //or
        alert(new T().constructor.name)
    }
}
class Person { 
    public FullName:string
}
new Sample<Person>().getTypeName()

我需要将输出打印为“Person”?

最佳答案

虽然类型泛型类型在编译时被清除,但您可以传入类的构造函数并获取其名称:

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()

关于typescript - 获取传递给 typescript 的泛型参数的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51906554/

相关文章:

json - 使用继承解析复杂的 JSON 对象

c# - 接口(interface) <T> 其中 T : class

c# - 将派生接口(interface)添加到通用接口(interface)

javascript - Angular 5 keyup 事件被触发两次

jquery - Visual Studio 2019 - 添加客户端库(TypeScript、JQuery 等)的正确方法

javascript - 带有 AMD 和 require.js 的 typescript

reactjs - 函数后的 Javascript 中的冒号是什么意思?

java - 如何从通用数据中减去值(value)

Java通配符泛型在方法中的返回类型

Java 如何使用 Set 参数化泛型方法?