繁体   English   中英

Typescript中动态创建的函数的形式参数

[英]Formal arguments of a dynamically created function in Typescript

在Javascript中,您可以动态创建一个函数,如下所示:

const func = new Function(['arg'], 'console.log(arg)');

这样就可以使用给定的参数调用它: func('Hello') 但是,在Typescript中, Function构造函数似乎只接受一个参数,即函数主体。 有没有办法为动态生成的函数提供形式参数?

(安全说明:该代码来自可信赖的来源,并且其中包含的内容经过验证非常有限。)

就像打字稿定义状态一样, Function构造函数采用可变数量的字符串,最后一个是函数主体:

new Function ([arg1[, arg2[, ...argN]],] functionBody)

这是根据文档

浏览器实现可能更宽松,但打字稿必须遵守规范。

最简单的解决方案是按预期方式调用该函数:

const func = new Function('arg', 'console.log(arg)');

或者,如果您已经具有参数数组:

const func = new Function(...['arg'].concat('console.log(arg)'));

不必使用Function构造函数创建新函数,只需将函数分配给变量,如下所示:

const func = function(arg) {
    console.log(arg);
}

以这种方式分配函数称为函数表达式,在JavaScript中得到广泛使用。 通过这种方式分配它,您可以根据需要添加任意多个参数。

const func = function(arg1, arg2, arg3) {
    console.log(arg1);
    console.log(arg2);
    console.log(arg3);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM