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
오, 이런, 나는 바보 야. 고맙습니다! –