तो कोड सरल है:टाइपप्रति संकलक त्रुटि json फ़ाइल आयात
calls.json
{"SERVER":{
"requests":{
"one":"1"
}
} }
file.ts
import json = require('../static/calls.json');
console.log(json.SERVER);
उत्पन्न जावास्क्रिप्ट सही है और जब नोड चल जेएस सर्वर, कंसोल लॉग जेसन। सर्वर प्रिंट '{अनुरोध: {एक:' 1 '}}', जैसा कि इसे करना चाहिए।
टाइपस्क्रिप्ट कंपाइलर (कॉमनज) हालांकि, किसी भी तरह से विशेष रूप से इस स्थिति को पसंद नहीं करता है और फेंकता है: "मॉड्यूल नहीं ढूंढ सकता" ../static/calls.json '"। तो
declare module '../static/calls.json'{
var exp:any;
export = exp;
}
इस स्पष्ट रूप से फेंकता है:
बेशक मैं एक .d.ts फ़ाइल लेखन, इस तरह की कोशिश की "परिवेश मॉड्यूल घोषणा रिश्तेदार मॉड्यूल का नाम निर्दिष्ट नहीं कर सकते"।
मैं भी अलग-अलग रूपों की कोशिश की तरह,: की आवश्यकता होती है
declare module 'calls.json' {
import * as json from '/private/static/calls.json';
export = json;
}
और उसके बाद:
import json = require('calls.json');
कोई भी काम ठीक से और अपने स्वयं के छोटे संकलक त्रुटियों :)
मैं उपयोग करना चाहते हैं एक बाहरी .json फ़ाइल क्योंकि मैं कॉमनज सर्वरसाइड और एएमडी क्लाइंटसाइड का उपयोग करता हूं और मैं स्थिरांक लोड करने के लिए एक फ़ाइल चाहता हूं।
यह काम करेगा, हालांकि मैं requirejs क्लाइंटसाइड का उपयोग कर रहा हूं। इसका मतलब है कि requjs परिभाषा को लोड करते समय, नोड परिभाषा में घोषित var की आवश्यकताएं समस्याएं पैदा करती हैं क्योंकि आवश्यकताएँ.d.ts में एक var आवश्यकता भी घोषित की गई थी ... – Ken
युप, यह अपेक्षा की जाती है कि दोनों परिभाषाओं को एक बार में संदर्भित किया जाता है। रनटाइम पर यह भी मामला होगा। आप एक ही समय में 'आवश्यकता' दोनों का उपयोग नहीं करेंगे। त्वरित समाधान यह है कि उस फ़ाइल में से कोई भी संदर्भ नहीं दे रहा है और केवल 'var var घोषित करें: किसी भी;' का उपयोग करें। – thoughtrepo
अच्छी प्रतिक्रिया, मैं एक कामकाज कपड़े दूंगा ... – Ken