Protected
La incorporación de este modificador de visibilidad, hace que nuestro miembro de la clase solo sea visible, tanto dentro de la clase como por las clases que heredan de ella.
El miembro marcado como protected no sera visible desde una instancia de la clase que lo contiene.
class Usuario { protected mensaje() { } } class Admin extends Usuario { public myMensaje() { // OK, can access protected member from subclass this.mensaje(); } } var usuario = new Usuario(); usuario.mensaje(); // Error ya que el miembro no es visible var admin = new Admin(); admin.mensaje(); // Error ya que el miembro no es visible admin.myMensaje(); // Miembro visible
Tuple types
Una tupla es una matriz, de cual conozco el tipo de sus miembros, pero estos no deben de ser iguales necesariamente.
Utilizaremos tuplas para retornar estructuras dentro de una propia clase, y no caer en la creación de cantidades absurdas de interfaces o tipos.
// Declaro la tupla var local: [string, number]; local = ['hello', 10]; // OK local = [10, 'hello']; // Error (los tipos no coinciden)
También podemos acceder por el indice a los elementos de la tupla, sin perder el poder de la comprobación de tipos.
local[0].substr(1); // OK local[1].substr(1); // Error, ya que el tipo es un number