2017-02-07 28 views
0

如何我結構看起來像?獲取類名打字稿導出函數中從一個特殊的參數

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

這是完全一樣的,你掛線,但有一個例外是,你從類而不是實例所需的名稱。
所以這個:

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

應該是:

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

如果myConstructor是一個實例,然後myConstructor.constructor本來類。在你的情況這一步是reduandent。