我有一个带有react-native的tsx文件。如果函数未设置为const或不显示此消息,则我的函数名称带有下划线:
找不到名称“ goBack”
goBack = () => {
// do stuff
}
但是如果我设置const或let,它就会起作用:
const goBack = () => {
// do stuff
}
为什么?
答案 0 :(得分:5)
这与箭头功能无关。您正在尝试为尚未在任何地方声明的标识符分配一个值。
此:
goBack = () => {
// do stuff
}
将箭头功能分配给已经声明的标识符goBack
。 (或者,如果它在class
内,它将创建一个新属性并为其分配箭头功能-但是我们知道您不在类中这样做,因为您的const
版本会如果你失败了。)
这就像:
answer = 42;
如果未声明answer
,则会从TypeScript中收到错误消息。
此:
const goBack = () => {
// do stuff
}
创建一个局部变量(很好,常量),并为其分配箭头功能,就像:
const answer = 42;
记住箭头函数没有声明语法是很有用的。箭头功能始终是一个表达式。示例中=
左侧的部分不是表达式的一部分(尽管有些令人惊讶,它可以have an effect on the function that's created)。