2015-06-21 8 views
10

में उपयोग नहीं किए गए हैं, मैं कोणीय ऐप बनाने के लिए टाइपस्क्रिप्ट और जेएसपीएम का उपयोग करने की कोशिश कर रहा हूं। समस्या यह है कि जब आप .js फ़ाइल लोड करना चाहते हैं, तो jspm में आपको एक आयात लिखना होगा और यह सुनिश्चित करता है कि फ़ाइल आपके कोड को चलाने से पहले लोड हो जाएगी। लेकिन टाइपस्क्रिप्ट मेरे आयात को हटा देता है। यह मैंने लिखा है टाइपस्क्रिप्ट कोड है। मुझे angular-new-router लोड करना होगा और फिर इसे मेरे मॉड्यूल निर्भरता में जोड़ना होगा।टाइपस्क्रिप्ट आयात विवरणों को हटाता है जो कोड

import angular = require('angular'); 
import MainController = require('./controllers/MainController'); 
import NgNewRoute = require('angular-new-router'); 

console.log(angular.version); 

var appModule = angular.module('app', ['ngNewRouter']); 
MainController.register(appModule); 

export = appModule; 

मेरा प्रश्न: मैं कैसे निर्देश दे सकते हैं टाइपप्रति मेरी इंपोर्ट स्टेटमेंट निकालना ही नहीं, या मैं कुछ और मेरी रूटर भार सुनिश्चित करने के लिए क्या करना है?

पीएस: मैं अपने टाइपस्क्रिप्ट कोड को ईएस 5 को आमज के साथ संकलित करता हूं।

संपादित करें: यह प्रश्न TypeScript: import module with only statements जैसा नहीं है। मुझे यह समस्या तीसरे पक्ष के पुस्तकालयों के साथ काम कर रही है, इसलिए मैं उन्हें बदलना नहीं चाहता हूं। इसके अलावा मैं आमज पैटर्न का उपयोग कर रहा हूं इसलिए amd-dependency मेरी समस्या को ठीक नहीं करता है!

संपादित करें 2: एक और समस्या यह है कि मुझे अपने टाइपस्क्रिप्ट कोड में जेएस मॉड्यूल के अलावा अन्य फ़ाइलों की आवश्यकता नहीं हो सकती है।

+0

संभव duplicat ई टाइपस्क्रिप्ट: केवल विवरण के साथ आयात मॉड्यूल] (http://stackoverflow.com/questions/16455211/typescript-import-module-with-only-statements) – sainaen

+1

@ सैनएन: यह किसी भी तरह से मेरे प्रश्न से संबंधित है लेकिन पूरी तरह से नहीं । मुझे तीसरे पक्ष के पुस्तकालयों की आवश्यकता है ताकि उन्हें एक चर या एसएचएच निर्यात करने के लिए बदलने का अच्छा विचार न हो। – alisabzevari

+1

हां, उस प्रश्न पर स्वीकृत उत्तर सबसे अच्छा नहीं है। अधिक वोट के साथ, दूसरा देखें, इसमें आधिकारिक समस्या ट्रैकर का एक लिंक है जो टाइपस्क्रिप्ट टीम के सदस्यों और दो संभावित कामकाज से प्रतिक्रिया के साथ है, जैसे कि यह सुझाव देता है कि आयातित मॉड्यूल को इसके बिना कुछ भी किए बिना संदर्भित किया जा सकता है। – sainaen

उत्तर

3

मैं टाइपप्रति निर्देश कैसे मेरी इंपोर्ट स्टेटमेंट को दूर नहीं कर सकते हैं, या फिर मैं अपने रूटर भार सुनिश्चित करने के लिए कुछ और करना है

आप एक चर जैसे के रूप में import से कुछ का उपयोग करने की आवश्यकता है

import foo = require('./foo'); 
var bar = foo; // Like this 
बस के बजाय

:

import foo = require('./foo'); 
var bar:foo; // This will not cause an import in the generated JavaScript 
+1

यह समस्या को हल करने का एक मुश्किल तरीका है। – alisabzevari

+0

यह * आलसी लोडिंग * के उपयोग के मामले का समर्थन करना है: http://basarat.gitbooks.io/typescript/content/docs/project/external-modules.html – basarat

+0

मैं आपके उत्तर के संबंध को समझ नहीं पा रहा हूं प्रदान किया गया लिंक आलसी लोडिंग उपयोग केस एक प्रकार की सशर्त लोडिंग से संबंधित है, लेकिन मैं चाहता हूं कि इसे चलाने से पहले मेरे पास कोणीय लाइब्रेरी लोड हो; या मैं अपने कोड चलाने से पहले एक सीएसएस फ़ाइल लोड करना चाहता हूँ। – alisabzevari

संबंधित मुद्दे