Używam modułów AMD i chcę ukryć złożony interfejs za jednym plikiem, który ładuje kilka innych plików i wybiera, co i jak ujawnić. Działa, używam tego rozwiązania, ale wydaje się trochę brzydkie, głównie z interfejsami.
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
Stosowanie:
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
Czy są jakieś lepsze rozwiązania? Nie chcę umieszczać wszystkiego w jednym pliku, ale chcę importw jednym pliku.