所以当我在他们的(angular.io)教程页面上找到这个函数声明时,我正在做一些关于angular 2的教程:
foo () : void {}
我的问题是......该声明与此之间的区别是什么?
foo() {}
我已经发现void是返回类型,但是如果你把例如字符串而不是void放在一起,那么两个函数都能够返回字符串。
那么真正的区别是什么?最佳实践是什么? (我倾向于说第一个,只是不知道为什么)。
那是Javascript,TypeScript,ES6还是Angular2的东西?之前从未见过。
答案 0 :(得分:2)
类型声明是打字稿的一部分,并被烘焙到语言中。通常最好的做法是尽可能包含类型声明,包括foo(): void
,因为它有助于捕获错误,例如:
foo(): void {
return 'hello';
}
You can see this example in practice in the TypeScript playground.
上面显示了typescript转换器中的错误,并且让你知道你可能会在你没想到的时候返回一些东西。在这种情况下,这是因为没有预期的回报,但提供了一个。
最终,它对您的代码没有任何影响,因为foo() {}
和foo(): void {}
将以完全相同的方式运行。最后,它只是一种跟踪变量并确保它们被正确使用的方法。 Here is an example of how TypeScript transpiles your TypeScript example into JavaScript.
您可以详细了解TypeScript here。