Typescript - 如何将字符串(" console.log")转换为函数(console.log)

时间:2017-06-12 14:09:43

标签: javascript typescript

使用typescript,我需要转换一些字符串,如" Math.floor"和" console.log"到函数Math.floor和console.log,以便能够在作为字符串参数传递时使用这些函数。

例如

applyFunction ("Math.floor", 4.2); // => Math.floor(4.2) => 4
applyFunction ("console.log", "Hi"); // => console.log("Hi") => Hi

等等。

我尝试将它们作为键和值添加到对象中,并在需要时扫描对象。但由于我没有时间不断搜索和添加所有现有的Typescript函数,我正在寻找更全面的方法。

2 个答案:

答案 0 :(得分:2)

FWIW您可以使用eval()将字符串解析为代码。

示例:



eval("console.log('foo')")




话虽如此,我建议您be careful when using eval()

答案 1 :(得分:1)

如果您使用的是浏览器,则可以执行以下操作:

window['Math']['floor'](4.2);
window['console']['log']('Hi');

确保迭代命名空间,eval(string)效果更好。