शीर्षक के रूप में: टाइपस्क्रिप्ट समर्थन नामस्थान करता है? यदि हां, तो मैं उनका उपयोग कैसे करूं?टाइपस्क्रिप्ट समर्थन नेमस्पेस करता है?
उत्तर
टाइपप्रति मॉड्यूल बारीकी से क्या ECMAScript 6. में होगा निम्न उदाहरण कल्पना से लिया जाता है से संबंधित परिभाषित करने के लिए अनुमति देता है। आप मॉड्यूल के नाम में डॉट्स का उपयोग करते हैं, टाइपप्रति इस प्रकार नेस्टेड मॉड्यूल को यह संकलन होगा:
module A.B.C {
export var x = 1;
}
यह
module A {
module B {
module C {
export var x = 1;
}
}
}
के बराबर है क्या भी महत्वपूर्ण है कि आप में ठीक उसी मॉड्यूल का नाम पुनः प्रयोग करते हैं एक टाइपस्क्रिप्ट प्रोग्राम, कोड एक ही मॉड्यूल से संबंधित होगा। इसलिए, आप पदानुक्रमित नामस्थानों को लागू करने के लिए नेस्टेड मॉड्यूल का उपयोग कर सकते हैं।
///<reference path='AnotherNamespace/ClassOne.ts'/>
///<reference path='AnotherNamespace/ClassTwo.ts'/>
module MyNamespace
{
import ClassOne = AnotherNamespace.ClassOne;
import ClassTwo = AnotherNamespace.ClassTwo;
export class Main
{
private _classOne:ClassOne;
private _classTwo:ClassTwo;
constructor()
{
this._classOne = new ClassOne();
this._classTwo = new ClassTwo();
}
}
}
आप और अधिक यहाँ देख सकते हैं::
कोई 'नेमस्पेस' कीवर्ड नहीं है, लेकिन आंतरिक मॉड्यूल ('मॉड्यूल' कीवर्ड का उपयोग करके) और बाहरी मॉड्यूल ('निर्यात' कीवर्ड का उपयोग करके) आपके कोड को तार्किक पदानुक्रमों में विभाजित करने का एक समान तरीका प्रदान करता है।
module outer {
var local = 1;
export var a = local;
export module inner {
export var x = 10;
}
}
आप देख सकते हैं, मॉड्यूल नाम है और नेस्ट जा सकता है:
टाइपस्क्रिप्ट 1.5 के बाद से ऐसा कीवर्ड –
है, मैं 'नेमस्पेस 'की अनुशंसा नहीं करता और न ही इसे' मॉड्यूल 'स्रोत कोड के साथ मिश्रित करता हूं। – fletchsod
यहाँ एक टाइपप्रति नाम स्थान उदाहरण है http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/
झूठी ...
module A.B.C {
export var x = 1;
}
module A {
export module B {
export module C {
export var x = 1;
}
}
}
के बराबर है
क्योंकि आप मॉड्यूल एक बाहर लिख सकते हैं:
var y = A.B.C.x;
लेकिन:
module A {
module B {
module C {
export var x = 1;
}
var y = C.x; // OK
}
//var y = B.C.x; // Invalid
}
//var y = A.B.C.x; // Invalid
संस्करण 1.5 के रूप में, टाइपप्रति namespace
कीवर्ड का समर्थन करता है। नेमस्पेस आंतरिक मॉड्यूल के बराबर हैं।
:
से पहले:
module Math { export function add(x, y) { ... } }
के बाद:
namespace Math { export function add(x, y) { ... } }
एक आंतरिक मॉड्यूल को परिभाषित करने के लिए, अब आप module
और namespace
दोनों का उपयोग कर सकते हैं।
दोनों 'मॉड्यूल' और' नेमस्पेस 'एक ही जावास्क्रिप्ट कोड में पारदर्शी हैं। –
मैं 'नेमस्पेस 'की सिफारिश नहीं करता और न ही इसे' मॉड्यूल 'स्रोत कोड के साथ मिलाकर। – fletchsod
ध्यान दें कि इन मॉड्यूल को अब नामस्थान के रूप में जाना जाता है: https://github.com/Microsoft/TypeScript/issues/2159 – Alex
मैं 'नेमस्पेस' की अनुशंसा नहीं करता और न ही इसे 'मॉड्यूल' स्रोत कोड' के साथ मिश्रित करता हूं। – fletchsod