我有一个带有以下代码的 TypeScript 文件:
import { functionTest } from './function_test'
function runnerFunctionTest() {
console.log("Test");
}
export class Runner {
run(source : string) {
eval(source);
}
}
如果我实例化 aRunner
并调用run("runnerFunctionTest();")
该函数正确运行,但如果我调用run("functionTest();")
(它应该运行导入的函数)我得到一个错误,说functionTest
未定义。
我怎样才能解决这个问题?
我尝试过的一件事是替换其中有效的代码,run
但new Function('functionTest', source).(functionTest);
必须添加所有这样的导入函数真的很烦人 - 其中大约有 20 个,而且这个数字只会随着时间的推移而增加。
另外,我知道调用的安全隐患eval
——这是做我想做的事情的唯一方法(至少我知道),即在用户的浏览器中运行用户生成的任意 JavaScript 代码。