为什么箭头函数名称必须是 const/let?



我有一个带有 react-native 的 tsx 文件。如果函数未设置为常量或让,则我的函数名称带有下划线,并显示以下消息:

找不到名称"goBack">

goBack = () => {
// do stuff
}

但是如果我设置 const 或让:

const goBack = () => {
// do stuff
}

为什么?

这与箭头函数没有任何关系。您正在尝试为尚未在任何地方声明的标识符分配值。

这:

goBack = () => {
// do stuff
}

将箭头函数分配给已声明的标识符goBack。(或者,如果这是在class内,它将创建一个新属性并将箭头函数分配给它 - 但我们知道您不会在类中执行此操作,因为如果您这样做,您的const版本将失败。

就像:

answer = 42;

如果未声明answer,则会收到来自 TypeScript 的错误。

这:

const goBack = () => {
// do stuff
}

创建一个局部变量(well,常量)并为其分配箭头函数,就像:

const answer = 42;

记住箭头函数没有声明语法很有用。箭头函数始终是一个表达式。示例中=左侧的部分不是该箭头函数表达式的一部分(尽管有点令人惊讶的是,它可能会对创建的函数产生影响)。

相关内容

  • 没有找到相关文章

最新更新