Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js&;Typescript:在沙盒中定义类,然后在外部使用它_Javascript_Node.js_Typescript - Fatal编程技术网

Javascript Node.js&;Typescript:在沙盒中定义类,然后在外部使用它

Javascript Node.js&;Typescript:在沙盒中定义类,然后在外部使用它,javascript,node.js,typescript,Javascript,Node.js,Typescript,我正在尝试创建一个函数,该函数将类名和参数作为参数,并尝试在沙盒环境中定义它们 例如,可以使用参数name:“Dog”,args:{name:“string”,isGoodBoy:“boolean”}调用函数。然后,我想在一个名为Dog的沙盒中定义一个类,它有两个类变量,name:string和isGoodBoy:boolean 我试图用vm模块定义代码(参见下面的测试示例),但没有用-Node.js无法执行给定给上下文的代码 vm.runInContext( "

我正在尝试创建一个函数,该函数将类名和参数作为参数,并尝试在沙盒环境中定义它们

例如,可以使用参数
name:“Dog”,args:{name:“string”,isGoodBoy:“boolean”}
调用函数。然后,我想在一个名为Dog的沙盒中定义一个类,它有两个类变量,name:string和isGoodBoy:boolean

我试图用vm模块定义代码(参见下面的测试示例),但没有用-Node.js无法执行给定给上下文的代码

    vm.runInContext(
        "export class eval(object.name) extends CoreObject {\n" +
        "    constructor() {\n" +
        "        console.log(\"I am here\");\n" +
        "    }\n" +
        "}", context);

不确定是否使功能完全动态。但是,您可以映射参数并相应地实例化类。看看这个:你可能想问问自己为什么你需要这个能力。可能还有其他方法可以解决您遇到的问题。不确定是否要使函数完全动态。但是,您可以映射参数并相应地实例化类。看看这个:你可能想问问自己为什么你需要这个能力。可能还有其他方法来解决你的问题。