Folha de Estilo - TecProg-2018-2/TecProg-VoxPop-WebApp GitHub Wiki
1. Formatação
2. Variáveis e Funções
3. Comentários
4. Classe
5. Interface
6. Namespace
7. Enum
8. null vs. undefined
9. Array
10. Parenteses
11. Chaves
12. Operações
1.1. O código deve ser indentado com tabs, utilizando um tab (tamanho 2) para cada nível de indentação ou 2 espaços.
1.2. O espaço entre dois blocos de código deve ser de apenas uma linha em branco (um enter).
1.3. É importante que a indentação dentro das chaves seja correta
1.3.1. Exemplo:
Não recomendado
function algumaFuncao(a, b) {
var c = 1;
return inner;
}Recomendado
function algumaFuncao(a, b) {
var c = 1,
d = 2,
inner;
if (a > b) {
inner = function() {
return {
r: c - d
};
};
} else {
inner = function () {
return {
r: c + d
};
};
}
return inner;
}1.4. O construtor deve estar formatado desta forma:
constructor(
private router: Router,
private requester: RequestsService,
private cookieService: CookieService,
private token: TokenService,
private validator: InputValidatorService
) { }- Use
camelCasepara nome de funçoẽs e variáveis.
Não recomendado
var FooVar;
function BarFunc() { }Recomendado
var fooVar;
function barFunc() { }- Use uma única declaração para cada variável quando inicializar a mesma.
Não recomendado
var x = 1; var y = 2Recomendado
var x = 1, y = 2;- Os comentários em blocos:
ClasseseMétodos, devem ser feitos da seguinte forma:
Recomendado
/**
* Comentários
* aqui dentro.
*/Não recomendado
// Comentários
// aqui dentro.- Os comentários simples, devem ser feitos da seguinte forma:
Recomendado
/* Comentário aqui dentro. */Não recomendado
// Comentário aqui dentro.- Use
PascalCasepara nome de classes.
Não recomendado
class foo { }Recomendado
class Foo { }- Use
camelCasepara 'class member' e métodos.
Não recomendado
class Foo {
Bar: number;
Baz() { }
}Recomendado
class Foo {
bar: number;
baz() { }
}-
Use
PascalCasepara nomes. -
Não use
Ino começo do nome.
Não recomendado
interface IFoo {
}Recomendado
interface Foo {
}- Use
PascalCasepara nomes.
Não recomendado
namespace foo {
}Recomendado
namespace Foo {
}- Use
PascalCasepara nomes em enums.
Não recomendado
enum color {
}Recomendado
enum Color {
}- Use
PascalCasepara enum member
Não recomendado
enum Color {
red
}Recomendado
enum Color {
Red
}- De preferência não use nenhum dos dois.
Não recomendado
let foo = {x:123,y:undefined};Recomendado
let foo:{x:number,y?:number} = {x:123};- Use checagem truthy para objetos que possam ser
nullorundefined
Não recomendado
if (error === null)Recomendado
if (error)- Use
== undefined/!= undefined(e não===/!==) para checar estadosnull/undefined. Nunca use outros valores para verificar (exemplo:'',0,false) e.g.
Não recomendado
if (error !== null)Recomendado
if (error != undefined)- Para arrays faça
foos:Foo[]em vez defoos:Array<Foo>.
- Não deixe espaços na parte de dentro do parenteses.
Não recomendado
if ( x < 10 ) Recomendado
if (x < 10) - Após o uso das estruturas condicionais e metodos, deve se aplicar espaço antes de abrir chaves(ex: {}).
- A primeira chave deve permanecer na mesma linha do operador.
- 'else' deve estar entre chaves, e com espaço separando.
Não recomendado
if(variavel = 0)
{
// código
}
else
{
// código
}Recomendado
if(variavel = 0) {
// código
} else {
// código
}- Quando dentro de colchetes, cada bloco deve ser separado com um enter, deixando as chaves em cada linha
Não recomendado
datasets: [{
label: a,
data: b,},
{ label: c,
data d,}
]Recomendado
datasets: [
{
label: a,
data: b,
},
{
label: c,
data: d,
}
]- Deve-se colocar espaço entre operadores.
Não recomendado
variavel=(1+2)*3;Recomendado
variavel = (1 + 2) * 3;