31-03-2017
Operador keyof

Por ser uma linguagem dinâmica, o JavaScript algumas vezes torna difícil a representação de algumas operações em um sistema tipado. Por exemplo, vejamos a seguinte função:

1
2
3
function prop(obj, propertyName) {
return obj[propertyName];
}

Essa função aceita um objeto e um nome de propriedade e retorna o valor correspondente desta propriedade. É importante observar que diferentes propriedades em um objeto possuem diferentes tipos. Com isso em mente, como podemos definir o tipo de retorno desta função?

Vamos a uma primeira tentativa:

1
2
3
function prop(obj: {}, propertyName: string) {
return obj[propertyName];
}

Adicionamos 2 anotações obj: {}, propertyName: string. Com isso estamos dizendo que obj precisa ser um objeto e que propertyName precisa ser do tipo string.

Agora como definir o tipo de retorno desta função?

21-11-2016
TypeScript - Decorators

Fala pessoal! Hoje vou falar sobre uma feature muito legal decorators. Utilizamos decorators para inserir metadados e comportamentos em uma declaração de classe, propriedade, métodos ou parâmetro de uma função. Trata-se de uma função com uma assunatura específica (de acordo com o target).

Para utilizar um decorator precisamos utilizar o simbolo @ junto com o nome do decorator antes do membro do código que estivermos decorando. Exemplo:

1
2
3
4
5
6
class MyClass {
@log
doSomething(arg) {
//...
}
}

NOTA: para utilizar esse recurso é necessário configurar a propriedade experimentalDecorators no arquivo tsconfig.json. Para compilar o arquivo via linha de comando utilize: tsc myFile.ts –target ES5 –emitDecoratorMetadata.

01-11-2016
jQuery - 10 dicas de performance

Os anos se passaram e o jQuery continua relevante em pleno 2016. A facilidade de manipulação e a infinidade de artigos na internet ajuda a reforçar a utilização do jQuery e a manter essa biblioteca viva. De fato, poucos anos atrás, escrever codigo compatível com diferentes versões de navegadores seria um trabalho muito árduo se não fosse pelo nosso amigo jQuery.

O grande problema com o jQuery é que muitos desenvolvedores ignoram as boas práticas e escrevem codigo muito pobres em performance (isso sem falar sobre design de código).

Por que performance é importante?

Vou expor duas boas razões:

  • Uma boa performance pode trazer uma boa experiência de uso. Nem sempre seus visitanes vão lhe dizer que seu site está lento, eles simplesmente não vão voltar a acessar o site.
  • O Google leva a performance em consideração para a classificação do seu site no PageRank.

Então, vamos aos pontos…

28-10-2016
Arrays tipados - ES6

Os arrays tipados são parte da especificação do ECMAScript 2015 (também conhecido como ES6). Eles foram projetados para facilitar o trabalho com estruturas de dados binárias. Inicialmente os arrays tipados foram introduzidos pelas APIs WebGL com o objetivo de diminuir a dissonância entre as estruturas de dados padrões do JavaScript e as estruturas de dados do C, linguagem base da API WebGL, e com isso permitir ao JavaScript acessar diretamente a estrutura já alocada em memória.

Você pode acessar este link para saber quais browsers já suportam esse recurso: http://caniuse.com/#feat=typedarrays

Criando Arrays tipados

Aqui não existe nenhum segredo, criamos um array tipado da mesma forma que criarpiamos qualquer instância de objeto. em JavaScript:

1
2
3
var arr = new Uint16Array(10);
arr[0] = 0xFFFF;
console.log(arr[0]);