2016-02-07 10 views
5

मैं समझता हूँ कि कैसे निजी चर आधिकारिक कोणीय 2 http tutorialनिजी चर नामकरण परंपरा

अनुभाग ऊपर लिंक के तहत में नामित किया गया है कोशिश कर रहा हूँ एक फ़ाइल app/toh/hero.service.ts कहा जाता है, जो (मुख्य रूप से) यह है :

@Injectable() 
export class HeroService { 
    constructor (private http: Http) {} 

    private _heroesUrl = 'app/heroes'; 

    getHeroes() { 
    return this.http.get(this._heroesUrl) 
        .map(res => <Hero[]> res.json().data) 
        .catch(this.handleError); 
    } 
    private handleError (error: Response) { 
    // in a real world app, we may send the server to some remote logging infrastructure 
    // instead of just logging it to the console 
    console.error(error); 
    return Observable.throw(error.json().error || 'Server error'); 
    } 
} 

एक निजी चर _heroesUrl है। ठीक है, इसलिए अंडरस्कोर के साथ निजी चर और विधियों को शुरू करने के लिए एक सम्मेलन मौजूद है।

लेकिन फिर यह private http और private handleError के लिए अंडरस्कोर का उपयोग क्यों नहीं किया जाता है? क्या यह सिर्फ "टाइपो" है या क्या इसका कारण है?

उत्तर

2

यह सिर्फ एक टाइपो है। टीएस के लिए यह लागू नहीं है, यह सिर्फ एक सम्मेलन है। Angular2 कोडबेस के भीतर यह लगातार उपयोग किया जाता है ताकि _ केवल एक सम्मेलन न हो, लेकिन private कीवर्ड (जो डार्ट में मौजूद नहीं है)

+0

कोणीय 2 शैलियों मार्गदर्शिका में: https: // कोणीय .io/दस्तावेज़/ts/नवीनतम/गाइड/शैली-गाइड.html निजी सदस्यों के लिए इस सम्मेलन के बारे में कुछ भी नहीं कहता है। मैंने इसे अपने ऐप पर इस्तेमाल किया, लेकिन अब मैं इसे हटाने पर विचार करता हूं। मुझे लगता है कि यह थोड़ा सा मदद करता है, लेकिन कोड थोड़ा अजीब लगता है ¯ \ _ (ツ) _/¯ – tibbus

+0

हाल ही में एक चर्चा हुई थी और अधिकांश टाइपस्क्रिप्ट में अंडरलाइन का उपयोग करने के खिलाफ थे। आधिकारिक शैली नियम अब इसका उपयोग नहीं कर रहा है। कोणीय कोड बेस स्वयं ही मेरे उत्तर (डार्ट ट्रांसमिशन) में उल्लिखित कारण के लिए इसका उपयोग करता है। –

+1

यहां चर्चा है https://github.com/angular/angular.io/issues/1108 –

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