2012-02-27 3 views
12
function foo(a, opt_b) { 
    opt_b = opt_b || 1; 
    ... 
} 

foo(1); // IntelliJ will yell at me, saying "Invalid number of parameters, expected 2" 

क्या foo() दस्तावेज करने का कोई तरीका है जैसे IntelliJ मुझे चिल्लाएगा?क्या मैं इंटेलिजे (10.5) को वैकल्पिक जावास्क्रिप्ट विधि तर्क पारित करने के बारे में चेतावनी नहीं दे सकता?

+0

कॉफीस्क्रिप्ट पर स्विच करने के अलावा, वह है। – ripper234

उत्तर

24

जावास्क्रिप्ट के लिए JavaDoc शैली टिप्पणियाँ का उपयोग करना, आप के साथ कोष्ठक [] के आसपास यह वैकल्पिक के रूप में एक पैरामीटर घोषणा कर सकते हैं:

/** 
* My function 
* @param [optionalParam] An optional parameter 
*/ 
myFunction: function(optionalParam) { 
    //... 
}, 
+1

अच्छा समाधान, हालांकि यदि आप Google के क्लोजर कंपाइलर का उपयोग कर रहे हैं तो आप इस नोटेशन का उपयोग नहीं करना चाहेंगे क्योंकि यह असंगत है, आईआईआरसी। – James

1

आप निरीक्षण जे एस के लिए विकल्प के माध्यम से सेटिंग में बदलाव कर सकते हैं:

enter image description here

+0

बहुत सारे पैरामीटर के साथ फ़ंक्शन - यह फ़ंक्शन के बारे में यह निरीक्षण नहीं है जिसमें बहुत से पैरामीटर 'f (a, b, c, d, e) 'हैं, और फ़ंक्शन को कॉल करने और वैकल्पिक तर्कों को पारित करने के बारे में नहीं? यह सेटिंग बंद है, इसलिए यह नहीं होना चाहिए। मैं वैकल्पिक पैरामीटर दस्तावेज करने के किसी तरीके के बारे में सोच रहा था। – ripper234

7

"जावास्क्रिप्ट> सामान्य> हस्ताक्षर बेमेल समस्या" निरीक्षण सेटिंग है, जो गलत-संख्या-की को निष्क्रिय कर देगा है आपके लिए चेतावनी चेतावनी। दुर्भाग्यवश, यह केवल पैरामीटर गिनती से अधिक प्रभावित करता है। इंटेलिजे आईडीईए के अंदर दिए गए विवरण के अनुसार, यह "जावास्क्रिप्ट, फंक्शन मान, आवंटित अभिव्यक्तियों को सही प्रकार के रूप में जांचता है। सत्यापन जावास्क्रिप्ट, एचटीएमएल या जेएसपी फाइलों में काम करता है।"

Turn off JavaScript parameter count warnings (and all type warnings as well)

1
http://usejsdoc.org/tags-param.html के अनुसार

वहाँ घोषित करने के लिए टिप्पणियों का उपयोग करने के दो तरीके हैं एक पैरामीटर के रूप वैकल्पिक:

/** 
* @param {string} [somebody] - Somebody's name. 
*/ 
function sayHello(somebody) { 
    if (!somebody) { 
     somebody = 'John Doe'; 
    } 
    alert('Hello ' + somebody); 
} 

और

/** 
* @param {string=} somebody - Somebody's name. 
*/ 
function sayHello(somebody) { 
    if (!somebody) { 
     somebody = 'John Doe'; 
    } 
    alert('Hello ' + somebody); 
} 

दोनों तरीकों से मेरे लिए काम किया।

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