Germán Küber

Microsoft Architect

TypeScript 1.5 (Nuevas características) 1 – 3 (Módulos)

ES6 Modules

Export Declarations

Es posible asignarle nombres a las declaraciones de módulos. Es posible asignarle un nombre al miembro exportado haciendo uso de las 2 palabras reservadas export y as

interface IUsuario { ... }
function loguear(usuario: IUsuario, recordar: boolean) { ... }
export { IUsuario, loguear as loguearFunction };  // loguear se exporta con el nombre loguearFunction

Por otro lado es posible utilizar las clausulas import y as para especificar diferentes nombres locales a las importanciones (esto es opcional).

import { IUsuario,  loguearFunction as loguearLocal } from "./usuario";
var s = read(loguearLocal);

Otra alternativa que tenemos es la capacidad de importar namespace, mediante esta técnica podremos importar todo un modulo completo.
Si bien es una técnica poderosa, siempre es mejor tener un control preciso de los módulos y miembros que estamos importando.

import * as iu from "./usuario";
var s = io.read(iu.loguearFunction);

Re-exporting

Mediante la clausula from somos capaces de re exportar un modulo, desde un archivo a otro.

export { read, write, standardOutput as stdout } from "./inout";

Mediante la utilización de vamos a ser capaces de realizar  reexportaciones de exportaciones de otros módulos. Esto es muy útil cuando queremos crear módulos que se encarguen de simplemente reexportar a otros módulos, para generar contenedores de exportación básicamente.

export function transform(s: string): string { ... }
export * from "./mod1";
export * from "./mod2";

Default Export

Podemos definir la exportación por defecto de un módulo.

export default class Greeter {
    sayHello() {
        console.log("Greetings!");
    }
}

Y a su vez estas mismas pueden ser importadas, mediante importaciones por defecto.

import Greeter from "./greeter";
var g = new Greeter();
g.sayHello();

Bare Import

Podemos utilizar esta opcion cuando realizamos una importación de un modulo “únicamente” por sus efectos secundarios.

import "./polyfills";

 

Translate »