Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 返回参数为空的函数或基于输入参数的1个参数_Javascript_Typescript - Fatal编程技术网

Javascript 返回参数为空的函数或基于输入参数的1个参数

Javascript 返回参数为空的函数或基于输入参数的1个参数,javascript,typescript,Javascript,Typescript,还有比这更干净的代码吗 Z是可以接受1个参数或空参数的函数。如果我传入了y,那么返回z(y),否则运行z() 如果您将未定义的传递给函数,就好像您根本没有传递任何内容一样 (我是在Javascript的上下文中得出这个答案的,并不是100%确定它是否完全适用于typescript,但我不明白为什么不适用) 这应该可以完成工作。为什么要使用中间层?只需签入z()或添加一个默认值函数z(x=“您喜欢的任何默认值”){…}为什么不总是传递y并检查函数中是否为空?返回y?z(y):z()返回y?z(y)

还有比这更干净的代码吗

Z是可以接受1个参数或空参数的函数。如果我传入了y,那么返回z(y),否则运行z()

如果您将未定义的
传递给函数,就好像您根本没有传递任何内容一样

(我是在Javascript的上下文中得出这个答案的,并不是100%确定它是否完全适用于typescript,但我不明白为什么不适用)


这应该可以完成工作。

为什么要使用中间层?只需签入
z()
或添加一个默认值
函数z(x=“您喜欢的任何默认值”){…}
为什么不总是传递
y
并检查函数中是否为空?
返回y?z(y):z()
返回y?z(y):z()
而不是
|
吗。因为
0
也是一个虚假的值,它不会通过…@decpk,我试图模仿他的原始逻辑。他做了
if(y).
根据你的逻辑
z(y | |未定义)
z(y)
相同。不,
z(y)
将在
z(0)
中传递,正如你正确指出的那样。在这种情况下,我的代码将执行
z(未定义)
。我的代码与
z(y)
不完全相同,但我的代码与他在报告中给出的代码相同question@decpk有趣的是,我在这里的答案在功能上与您在上面的评论中给出的答案完全相同。有些情况下,此代码的行为与其原始代码的行为不完全相同
y=false
例如,我们并不真正知道
z(y)
做了什么——可能它将
false
0
未定义的
视为相同的,也可能不一样。这就是为什么它值得考虑。OP提到
y
将是一个字符串。因此,我确实认为这消除了
y=false或0
y=''
的可能性,在这种情况下,这也意味着
y='
有一些值(这与一开始甚至不传递
y
无关),我们需要将其传递到
z()
  async x (y?: string) {
    if(y) {
      return z(y)
    } else {
      return z()
    }
  }
  async x (y?: string) {
      return z(y || undefined);
  }
async x(y) {
     return z( y ?? undefined)
}