从特殊参数获取导出函数内的TypeScript中的类名

时间:2017-02-07 10:25:42

标签: typescript

我的结构如何?

namespace DataProviders
{
     export function SomeExportFunction<T>(myConstructor: { new (): T; MappingOptions?: any; }): T[]
    {
        //getting "SomeClass" as a string from "someModuleOrNameSpace.SomeClass" which should be somewhere in "myConstructor"(parameter)
    }
}       

如何使用?     this.Something=SomeNamespace.SomeExportFunction(someModuleOrNameSpace.SomeClass);

我尝试myConstructor.constructor.toString().match(/\w+/g)[1];这将返回Function,我需要SomeClass

根据这篇文章Get an object's class name at runtime in TypeScript

那么如何获得myConstructor的班级名称?

1 个答案:

答案 0 :(得分:1)

它与您链接的主题完全相同,但有一个例外,即您需要来自类的名称而不是实例。
所以这个:

myConstructor.constructor.toString().match(/\w+/g)[1];

应该是:

myConstructor.toString().match(/\w+/g)[1];

如果myConstructor是一个实例,则myConstructor.constructor将成为该类。在你的情况下,这一步骤是减少的。