有人可以解释一下React应用程序中这两种流类型别名之间的区别吗?
type Props = {
handleChange(): void, // 1
handleChange: () => void, // 2
}
答案 0 :(得分:1)
两者都定义了名为handleChange
的可调用对象,这些可调用对象不带参数也不返回任何内容。在类型方面,它们是等效的,但是在文档方面,它们是不同的。第一个是方法,其中第二个是作为函数的属性,它暗示它已经具有绑定的this
,而第一个则没有。
在像element.onclick = props.handleChange
这样的无点上下文中使用时,第一个指示用法应该是element.onclick = props.handleChange.bind(props)
,因为这是一种方法,而适当的this
很重要。第二个表明只写element.onclick = props.handleChange
很好,因为它是函数而不是方法。
答案 1 :(得分:0)
两者相似。他们只是强制转换到undefined
。
在第一个代码示例中,您要先调用function,然后指示它返回void。
在第二个代码示例中,您正在定义一种使用typecast的方法,该方法将以一种返回返回void的函数的方式使用。
我个人喜欢定义第二个代码示例。