繁体   English   中英

如何从窗口元素调用TypeScript静态方法?

[英]How to call TypeScript Static Method from window element?

我正在将我们的一些应用程序从JavaScript转换为TypeScript,并具有一个JavaScript方法,该方法通过函数名称的window元素执行函数。

我们无法从TypeScript产生的JavaScript中找到并执行正确的功能。

TypeScript代码:

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

产生的JavaScript

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

JavaScript调用函数

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",{});

window [“ ItemSelector”] [“ preProcessData”]返回未定义。

window [“ Itemselector.preProcessData”]也返回未定义。

我敢肯定这是很简单的,但是我只是想不通。 谢谢,马特

你拼ProcessProcesss在你的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM