Uso i moduli AMD e voglio nascondere un'interfaccia complessa dietro un file che carica diversi altri file e sceglie cosa esporre e come. Funziona, io uso questa soluzione ma sembra un po 'brutta, soprattutto con le interfacce.Interfaccia importata da esportazione TypeScript
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
Usage:
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
Tutte le soluzioni migliori là fuori? Non voglio mettere tutto in un singolo file, ma voglio un file singolo con lo import
.
Grazie per tutte le varianti! TS è appena diventato molto più bello. –
Tuttavia, è illegale utilizzare questo stile di riesportazione in uno spazio dei nomi. –
Esiste uno strumento per esportare e importare un'interfaccia in TS simile al tuo esempio precedente? O è solo un caso di importare e riutilizzare la stessa linea, ma cambiarla in un'esportazione, ad es. 'import {IMessage} da './message-types';' e poi sulla riga successiva abbiamo 'export {IMessage} da './message-types';' – mtpultz