Utilizo módulos AMD y quiero ocultar una interfaz compleja detrás de un archivo que carga varios otros archivos y elige qué exponer y cómo. Funciona, uso esta solución pero se siente un poco feo, principalmente con las interfaces.
import Types = require('./message-types');
import MessageBaseImport = require('./message-base');
export interface IMessage extends Types.IMessage {} // This is an interface
export var MessageBase = MessageBaseImport; // This is a class
Uso:
import Message = require('message');
import { * } as Message from 'message'; // Or with ES6 style
var mb = new Message.MessageBase(); // Using the class
var msg: Message.IMessage = null; // Using the interface
¿Alguna mejor solución por ahí? No quiero poner todo en un solo archivo, pero quiero import
un solo archivo.
typescript
Gábor Imre
fuente
fuente
import { IMessage } from './message-types';
y luego en la siguiente línea tenerexport { IMessage } from './message-types';
Algunos ejemplos más además de la respuesta de # c-snover de aquí . Puedes juntarlos.
fuente
En mi caso particularmente, tuve que 'declarar' la interfaz en lugar de exportarla.
Para usar la interfaz como un tipo en otro archivo como este:
De esta manera, no tiene que exportar e importar la interfaz.
fuente