在 Javascript 中,您可以动态创建函数,如下所示:
const func = new Function(['arg'], 'console.log(arg)');
以便可以使用给定参数调用它:func('Hello')
。然而,在 Typescript 中,Function
构造函数似乎只接受一个参数,即函数体。有没有办法为动态生成的函数提供形式参数?
(安全说明:该代码来自值得信赖的来源,并且经验证,它可能包含的内容非常有限。)
最佳答案
Function
构造函数采用可变数量的字符串,就像 typescript 定义状态一样,最后一个是函数体:
new Function ([arg1[, arg2[, ...argN]],] functionBody)
这是根据docs
浏览器实现可能更宽松,但 typescript 遵守规范。
最简单的解决方案是按预期调用函数:
const func = new Function('arg', 'console.log(arg)');
或者,如果您已经有了参数数组:
const func = new Function(...['arg'].concat('console.log(arg)'));
关于javascript - Typescript 中动态创建函数的形式参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52696352/