-
O Deno indica esse uso na style-guide dele;
-
O código que sai dos transpiladores não é muito diferente do escrito;
-
Funções regulares, que usam a palavra-chave
function, são mais fáceis de compreender para pessoas novas com a linguagem ou que estão voltando a trabalhar com ela e não compreendem ainda as mudanças do es2015. -
Funções regulares, que usam a palavra-chave
function, são içadas para o topo do escopo e podem ser usadas antes de sua declaração.hi(); // This works because 'hi' is a regular function. function hi() { console.log('Hi'); }
-
Funções regulares, que usam a palavra-chave
function, permitem o uso do objetoarguments.function sumAll() { return Array.from(arguments).reduce((total, value) => { return total + value; }, 0); }
-
Funções regulares, que usam a palavra-chave
function, permitem o uso da palavra-chavethise por consequência da injeção de contextos.function getName() { return `${this.firstName} ${this.lastName}`; } getName.call({ firstName: 'Karl', lastName: 'Marx' }); //=> 'Karl Marx'
-
Function declarations obrigatóriamente são funções nomeadas e isso torna o processo de depuração e tratamento de erros mais fácil, porque a pilha rastreável de erros exibe o nome da função em que o erro foi lançado.
| ❌ Bad |
|---|
export const fromBase64 = <T>(source: string): T => {
const buffer = Buffer.from(source, 'base64');
return JSON.parse(buffer.toString());
}; |
| ✅ Good |
export function fromBase64<T>(source: string): T {
const buffer = Buffer.from(source, 'base64');
return JSON.parse(buffer.toString());
} |
References: https://deno.land/manual/contributing/style_guide#top-level-functions-should-not-use-arrow-syntax