Javascript Typescript在另一个函数中用作可选参数
我有这样一个函数:Javascript Typescript在另一个函数中用作可选参数,javascript,typescript,Javascript,Typescript,我有这样一个函数: function fn(variableFunction:(args?:String)=>boolean){//更改为args?:任何操作都可以,但这需要是String ... }真正的答案取决于您计划在fn的实现中如何使用变量函数。假设您希望在字符串上实际调用它,如: variableFunction("hello"); 然后,fn的正确签名为 function fn(variableFunction: (args: string) => boolean) {
function fn(variableFunction:(args?:String)=>boolean){//更改为args?:任何操作都可以,但这需要是String
...
}
真正的答案取决于您计划在fn
的实现中如何使用变量函数。假设您希望在字符串上实际调用它,如:
variableFunction("hello");
然后,fn
的正确签名为
function fn(variableFunction: (args: string) => boolean) {
variableFunction("hello");
}
在这里,我将String
更改为String
,因为,我将args
参数设置为非可选参数
在您的示例中,它将同时接受fn()
调用:
fn(something); // okay
fn(something2); // okay
可能令人惊讶的是,fn(something2)
不是一个错误,因为something2
不接受参数。但这是我的。这是因为在运行时,您总是可以将something2
(一个没有参数的函数)视为something
(一个忽略其参数的函数)
无论如何,希望这有帮助;祝你好运
真正的答案取决于您计划在fn
的实现中如何使用variableFunction
。假设您希望在字符串上实际调用它,如:
variableFunction("hello");
然后,fn
的正确签名为
function fn(variableFunction: (args: string) => boolean) {
variableFunction("hello");
}
在这里,我将String
更改为String
,因为,我将args
参数设置为非可选参数
在您的示例中,它将同时接受fn()
调用:
fn(something); // okay
fn(something2); // okay
可能令人惊讶的是,fn(something2)
不是一个错误,因为something2
不接受参数。但这是我的。这是因为在运行时,您总是可以将something2
(一个没有参数的函数)视为something
(一个忽略其参数的函数)
无论如何,希望这有帮助;祝你好运