Typescript 为什么箭头函数名必须为const/let?
我有一个带有react native的tsx文件。如果函数未设置为const或let,则我的函数名在下面加下划线: 找不到名称“goBack” 但如果我设置const或let,它会起作用:Typescript 为什么箭头函数名必须为const/let?,typescript,react-native,tsx,Typescript,React Native,Tsx,我有一个带有react native的tsx文件。如果函数未设置为const或let,则我的函数名在下面加下划线: 找不到名称“goBack” 但如果我设置const或let,它会起作用: const goBack = () => { // do stuff } 为什么?这与箭头函数无关。您正在尝试为尚未在任何地方声明的标识符赋值 这: 将箭头函数分配给已声明的标识符goBack。(或者,如果这是在类中,它将创建一个新属性并为其分配箭头函数-但我们知道您不是在类中执行此操作,因为
const goBack = () => {
// do stuff
}
为什么?这与箭头函数无关。您正在尝试为尚未在任何地方声明的标识符赋值 这: 将箭头函数分配给已声明的标识符
goBack
。(或者,如果这是在类中,它将创建一个新属性并为其分配箭头函数-但我们知道您不是在类中执行此操作,因为如果是这样,您的const
版本将失败。)
就像:
answer = 42;
如果未声明answer
,则TypeScript会出错
这:
创建一个局部变量(好的,常量)并为其指定箭头函数,如下所示:
const answer = 42;
记住箭头函数没有声明语法是很有用的。箭头函数始终是一个表达式。示例中=
左侧的部分不是表达式的一部分(尽管有些意外,它可以)。这取决于它在“tsx文件”中的定义位置。它是在类内部(因此是该类的属性),还是在类定义外部?前者是允许的,而后者是不允许的。不知何故,你的问题似乎不太可能与……有关,当然,是有道理的。您是否在某处定义了名为goBack
的环境变量?这就是您试图为其赋值的内容。如果不是,您需要一个本地的,您可以使用let/var/const来实现。这不仅仅是一个箭头函数,如果你做了一个简单的字符串赋值,它也会有这个错误!谢谢那有什么更好呢?函数goBack()或const goBack=()=>{}@Cracky-两者都可以,具体取决于各种情况。您是否需要它来关闭此
?使用箭头功能。是否需要将其完全提升?使用传统的函数
声明。是否要通过在代码中搜索函数goBack
来查找它?使用传统功能。您是否要使用新的?使用类
或函数
。如果您不关心这个
或提升,并且不打算使用新的
,那么使用箭头函数还是传统函数是风格问题。
answer = 42;
const goBack = () => {
// do stuff
}
const answer = 42;