在TypeScript中的箭头函数后面,"void = () => {}" 代表什么意思?

6
我在代码库中看到了这一段代码,我有点难以理解void = (page)。根据https://dev59.com/ClsX5IYBdhLWcg3wDsA8#34274584,返回类型出现在后面的=>,在我的情况下是void。那么= (page) => {}是什么意思呢?如果不使用箭头函数,它的等效函数是什么?
以下是代码:
private navigateTo: (page: string) => void = (page) => {
    // display page
}

= (page) => {} 表示字符串 (page) 传递到此函数,该函数返回空值(void)。 - Xaqron
“Fat arrow function” 这个术语已经过时了,几年前就改称为 “箭头函数” 了。 - user663031
2个回答

13

你正在错误地看待这段代码。一般的结构是

private Name: Type = Value

类型是 (page: string) => void,值是 (page) => {}。该类型表示 navigateTo 是一个接受字符串参数并返回空值的函数,这也是 (page) => {} 的作用。


哇,我花了很长时间才看出来... 我个人认为,为了更好的可读性,最好将其写成一个接口 - Get Off My Lawn
我对TypeScript不是很了解,但我猜如果能将类型放在括号中可能会有所帮助:private navigateTo: ((page: string) => void) = (page) => {} - Felix Kling
2
我撤回了“interface”部分,最好写成这样:private navigateTo(page:string): void { } - Get Off My Lawn

5
在Typescript中,类型定义被插入到语言的语句中,稍微改变了它们。
您提交的代码应该如下所示:
- private navigateTo:这部分很简单。我们在当前类中创建一个名为navigateTo的私有成员。 - ...:(page: string) => void:这是成员的类型。在这种情况下,它表示接受一个字符串参数并且不返回任何东西(void)的函数。这部分完全是Typescript。 - ... = (page) => { /* display page */ }:这是实际分配给变量的函数。
我建议您阅读一些Typescript Handbook。它有关于语法和语言的大量信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接