2016-06-04 2 views
0

일부 응용 프로그램을 JavaScript에서 TypeScript로 변환하고 있으며 함수 이름으로 window 요소를 통해 함수를 실행하는 JavaScript 메서드가 있습니다.Window 요소에서 TypeScript 정적 메서드를 호출하는 방법?

TypeScript 생성 JavaScript에서 올바른 기능을 찾고 실행하는 데 문제가 있습니다.

타이프 코드 : 자바 스크립트

var ItemSelector = (function() { 
function ItemSelector() { 
} 
ItemSelector.preProcesssData = function (data) { 
    //Do Stuff 
    return data; 
}; 
return ItemSelector;}()); 

자바 스크립트 호출 기능을 생산

class ItemSelector { 
public static preProcesssData(data: any): any { 
    //Do Stuff 
    return data; 
}} 

function callFunctionByName(funcName,data) { 
var fn = null; 
/* 
* If function has a scope (namespace) like this: "myScope.myFunction" 
*/ 
if (funcName.indexOf(".") != -1) { 
    var ns = funcName.split("."); 
    if (ns && ns.length == 2) { 
     fn = window[ns[0]][ns[1]]; 
    } else { 
     cl("Function with multiple scopes not supported: " + funcName); 
    } 
} 
/* 
* Else function is just a plain string with no scope. 
*/ 
else { 
    fn = window[funcName]; 
} 
//fn is always undefined 
if (typeof fn === "function") { fn(data);}} 

예 전화

callFunctionByName("ItemSelector.preProcessData",{}); 
,536,

창 [ "ItemSelector"] [ "preProcessData"]는 정의되지 않은 값을 반환합니다.

window [ "Itemselector.preProcessData"]도 정의되지 않은 값을 반환합니다.

나는 이것이 아주 쉬운 것이라고 확신하지만, 나는 그것을 알아낼 수 없다. 감사합니다, Matt

답변

1

Process의 철자가 Processs입니다.

+1

오, 이런, 나는 바보 야. 고맙습니다! –

관련 문제