यहां मेरा सुझाव है। मुझे लगता है कि आप जो करना चाहते हैं वह एक मॉड्यूल को परिभाषित करता है जो कई स्रोत फ़ाइलों पर फैला हुआ है। इस लक्ष्य को हासिल करने के लिए आप इस प्रकार एक आंतरिक मॉड्यूल का उपयोग करने की आवश्यकता है:
मॉडल/Person.ts
module Model {
export class Person {
name: string;
Message : Message;
constructor(name: string) {
this.name = name;
}
}
}
मॉडल/Message.ts
module Model {
export class Message {
message: string;
constructor(message: string) {
this.message = message;
}
}
}
ऐप .ts
///<reference path='Models/Person.ts'/>
///<reference path='Models/Message.ts'/>
module MyAppNamespace {
export class ChatApp {
User: Model.Person;
constructor() => {
this.User = new Model.Person("John");
this.User.Message = new Model.Message("Hello World");
}
}
}
आप
tsc App.ts
के साथ इस संकलन तो सब कुछ काम करना चाहिए। ध्यान दें कि मॉड्यूल outer
दो स्रोत फ़ाइलों में घोषित किया गया है। चूंकि यह आंतरिक मॉड्यूल है, इसलिए हमें ///<reference path='foo.ts'/>
कथन जोड़कर उन्हें हमारे दायरे में रखने के लिए कंपाइलर को बताना होगा।
विजुअल स्टूडियो में भी अच्छा काम करता है। क्या इन फ़ाइलों में से केवल एक को आयात करना संभव होगा? वीएस में आप आमतौर पर /// <संदर्भ पथ = "_ allRefs.js" /> का उपयोग करते हैं। क्या यह संभव होगा? उदा। <संदर्भ पथ = "AllModels.ts" />? – Anders
भविष्य के संदर्भ के लिए, यह संभव है। तो आप एक फ़ाइल "allModels.ts" बना सकते हैं जिसमें /// refs शामिल हैं। – Anders
अलग-अलग फाइलों में व्यक्ति और संदेश क्यों स्टोर करें? क्या मेरे पास मॉड्यूल में लपेटे बिना केवल क्लास परिभाषाओं के साथ Model.ts फ़ाइल हो सकती है? यदि हां, तो मैं इन परिभाषाओं को App.ts में कैसे आयात करूं .. – FutuToad