TypeScript 1.6 (Nuevas características) 2 – 3

Class expressions

Cuando declaramos una class expressions, el nombre de nuestra clase sera opcional y en caso de que lo especifiquemos esta no sera accesible desde fuera del scope dela clase.
El tipo de la clase, no podrá ser instanciado directamente, pero si podemos realizar una igualación de tipos .

 

Extending expressions

Hasta este momento heramos capaces de extender una clase mediante la palabra reservada extends, pero a la hora de extender un tipo solo podemos hacerlo si conocíamos con exactitud el tipo del cual íbamos a extender.
Ahora podemos extender una clase, a través de la llamada de una función y basándonos en su tipo de retorno (las clases retornas deben cumplir con la condición de que sus constructores tengan la misma firma),.

En este ejemplo la clase Test hereda la llamada a la función  getGreeterBase(), la cual retorna una interface del tipo  GreeterConstructor, como las clases ThingA y ThingB cumplen con la condición de poseer la misma firma en su constructor, estas pueden se retornadas por la función.
Ahora si en su lugar intentáramos que la funcióngetGreeterBase(), retornase una instancia de la clase ThingC el compilador nos arrojaría un error indicando que la clase  ThingC no cumple con la misma firma de constructor.

Abstract classes and methods

Cuando declaramos una clase del tipo abstract, esta clase puede poseer métodos implementados o puede poseer métodos abstracts.
En el caso de tener métodos abstract, estos métodos no tendrán una implementación en nuestra clase abstract, si no que deberán de ser implementados en nuestras clases hijas (clases que hereden de nuestra clase abstract)
De igual modo nuestras clases abstract solo pueden ser heredadas, pero nunca instanciadas.

Generic type aliases

Posibilidad de utilizar generics en nuestros alias

Stricter object literal assignment checks

Ahora TypeScript valida la declaraciones de objetos literales.

Podemos usar index signature, para permitir algunas variantes.

ES6 generators

Solo vamos a poder hacer uso de esta nueva caracteristica si tenemso activado nuestro targeting en ES6

tsconfig.json

Podemos indicar el tipo de retorno

Podemos dejar que infiera el tipo de retorno

Leave a Comment