这两种语法对于胖箭头函数是否有区别,或者它们在功能上是否相同?

Der*_*ler 1 typescript angular

在Angular 6/Typescript代码示例中,我看到使用以下两种语法调用胖箭头函数.它们之间是否存在一些差异,或者它们在功能上是否相同?

blah.then(param => {
    // do something with param
});

blah.then((param) => {
    // do something with param
});
Run Code Online (Sandbox Code Playgroud)

Laz*_*vić 5

它们在JavaScript的上下文中是相同的 - 当fat-arrow函数中的参数列表中只有一个参数时,您不需要包装括号.

foo => foo // ok
(foo) => foo // ok
Run Code Online (Sandbox Code Playgroud)

但是,与TypeScript略有不同.为了定义参数的类型,即使只有一个参数,您仍然需要括号:

(foo: string) => foo // ok
foo: string => foo // syntax error
Run Code Online (Sandbox Code Playgroud)

请注意,这与Angular无关,它只是JavaScript和TypeScript.

另外,你说"胖箭头函数称为 "; 但是,您显示的示例并未显示函数调用(调用) - 而是显示函数表达式.