typescript - 为什么箭头函数名称必须是 const/let?
问题描述
我有一个带有 react-native 的 tsx 文件。如果 function 未设置为 const 或 let 并显示以下消息,则我的函数名称将带有下划线:
找不到名称“goBack”
goBack = () => {
// do stuff
}
但如果我设置 const 或 let 它会起作用:
const goBack = () => {
// do stuff
}
为什么 ?
解决方案
这与箭头函数没有任何关系。您正在尝试为未在任何地方声明的标识符分配值。
这:
goBack = () => {
// do stuff
}
将箭头函数分配给已声明的标识符goBack
。(或者,如果它在 aclass
中,它会创建一个新属性并将箭头函数分配给它——但我们知道你没有在类中这样做,因为const
如果你这样做,你的版本会失败。)
就像:
answer = 42;
如果answer
没有声明,你会从 TypeScript 中得到一个错误。
这:
const goBack = () => {
// do stuff
}
创建一个局部变量(嗯,常量)并将箭头函数分配给它,就像:
const answer = 42;
记住箭头函数没有声明语法是很有用的。箭头函数始终是一个表达式。您的示例中左侧的部分=
不是该箭头函数表达式的一部分(尽管有些令人惊讶的是,它会对创建的函数产生影响)。
推荐阅读
- ruby - ruby 和 Gtk::FontChooserDialog.new 字体大小
- docker-compose - 无法运行 apt-get 命令来创建 docker 映像
- python - 比较两个字符串中的字符
- google-cloud-platform - 谷歌云 - 来自 IAP.GetIamPolicy API 的奇怪响应
- ruby - S3 Ruby SDK仅列出直接在前缀下的对象?
- laravel-5 - Laravel 和 Blade 动态 flexslider 问题
- c++ - gcc/clang UBSan 运行时错误——误报?
- performance - 使用 Spark Streaming Application 的 Sparklens 进行性能分析
- amazon-web-services - aws 在 Yaml 中下载内容
- google-apps-script - 将笔记从一张纸复制到另一张纸。进口范围?