使用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函数,我正在寻找更全面的方法。
答案 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)效果更好。