当前位置:  开发笔记 > 编程语言 > 正文

以下含义如下:()=> void = null

如何解决《以下含义如下:()=>void=null》经验,为你挑选了2个好方法。

我正在看这两个函数声明:

function f1(chainFn: (fn: Function) => void = null) {

}

function f2(): (...args: any[]) => (cls: any) => any {

}

我真的不明白以下部分的定义:

// function that accepts `fn` of Function type by returns what?
(fn: Function) => void = null

// function that accepts an array of arguments and returns a function that returns a result of `any` type?
(...args: any[]) => (cls: any) => any

任何人都可以详细说明并提供具体实施的例子吗?



1> Aluan Haddad..:
() => void

是一个函数的类型,它不带任何参数,也不返回任何东西.

() => void = null

根本不是一种类型.

f(g: () => void = null) { ... }

是一个函数,它接受另一个g类型的函数() => void作为参数,并且null如果没有提供该参数,则为该参数提供默认值.这有效地使参数可选.

我想补充一点,在这种情况下,这是一种可怕的做法,因为JavaScript undefined不是null为了未指定的参数而传递的,并且没有理由改变这种行为,因为这样做是令人惊讶的.在这种情况下,最好是写入

// g is optional and will be undefined if not provided
f(g?: () => void) { ... }

或写

// g is optional and will be a no-op if not provided.
f(g: () => void = () => {}) { ... }


我明白了,再次感谢你指出这一点.实际上,TS来源真的很难读.GL)

2> Rafal..:

第一个函数f1接受一个参数chainFn,它是一个函数,作为参数接受函数fn并且不返回任何内容=> void,此参数chainFn也是可选的= null,运行时缺省值为undefined.

第二个函数f2不接受任何参数并返回一个函数.该函数接受任何类型的打开参数列表...args:any[](可以使用逗号分隔的参数调用它var r = f2(); r(1,2,3,4);),它返回一个接受任何类型作为参数并返回一些东西的函数.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有