मैं एएमडी मॉड्यूल का उपयोग करता हूं और मैं एक फ़ाइल के पीछे एक जटिल इंटरफ़ेस छिपाना चाहता हूं जो कई अन्य फाइलें लोड करता है और क्या खुलासा करता है और कैसे चुनता है। यह काम करता है, मैं इस समाधान का उपयोग करता हूं लेकिन यह इंटरफेस के साथ ज्यादातर बदसूरत लगता है।टाइपस्क्रिप्ट निर्यात आयातित इंटरफ़ेस
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
उपयोग:
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
किसी भी बेहतर समाधान वहाँ बाहर? मैं सबकुछ एक फ़ाइल में नहीं रखना चाहता हूं लेकिन मैं import
एक एकल फ़ाइल चाहता हूं।
// export the default export of a legacy (`export =`) module
export import MessageBase = require('./message-base');
// export the default export of a modern (`export default`) module
export { default as MessageBase } from './message-base';
// export an interface from a legacy module
import Types = require('./message-types');
export type IMessage = Types.IMessage;
// export an interface from a modern module
export { IMessage } from './message-types';
सभी बदलावों के लिए धन्यवाद! टीएस अभी और अधिक सुंदर हो गया है। –
हालांकि, नामस्थान –
में फिर से निर्यात करने की इस शैली का उपयोग करना अवैध है क्या आपके विरासत उदाहरण के समान टीएस में एक इंटरफेस के निर्यात और आयात के लिए एक लाइनर है? या यह सिर्फ आयात करने का एक मामला है और फिर उसी पंक्ति का पुन: उपयोग कर रहा है, लेकिन इसे निर्यात में बदल रहा है उदाहरण के लिए। './message-types' से आयात {IMessage}; और फिर अगली पंक्ति पर './message-types' से 'निर्यात {IMessage} है;' – mtpultz