JsDoc에서 void를 반환하는 방법은 무엇입니까?


81

JsDoc에서 void를 반환하는 메서드 또는 함수를 선언하는 지정된 방법이 있습니까? 현재 저는 void기본 반환 값 이라고 믿고 있으며 다른 반환 값을 구체적으로 제공해야합니다.

/**
 * @return {Integer} The identifier for ...
 */

eslint.org/docs/rules/valid-jsdoc에 따르면 @returns {void}Ahhh 누군가 이미 언급했습니다. stackoverflow.com/a/45450508/470749
Ryan

답변:


93

JsDoc의 유형 세트에서 선택해야한다고 생각하지 않습니다. 원하는 유형 이름을 사용할 수 있습니다 (중괄호는 유형임을 나타냄).

@return {Void}

그러나 이것은 JavaScript에 더 정확할 것입니다.

@return {undefined}

또한 될 수 @returns {void}있습니까?
hellboy 2014

8
@Eugene는 null로 반드시 동일하지 않습니다undefined
BadHorsie

6
@return {Void}IntelliJ IDE에서 코드 검사 경고를 표시 @return {undefined}하고 표시 @return {void}하지 않습니다.
Shanimal

4
null과 같지 않습니다 undefined. null 인 경우 여전히 정의되지만 값이 없습니다. 정의되지 않은이 :-) 잘 정의되지 않습니다
마그누스 에릭손

3
Ecmascript 사양은 언어 유형을 나열합니다. void연산자가 반환하는 값 은 undefined입니다. 값 유형의 이름은 undefined있다 Undefined하더라도, typeof undefined평가됩니다에 "undefined". 이름 Void은 Ecmascript 사양에 정의되어 있지 않습니다.
아론 Mansheim

104

클로저 컴파일러

Google의 Closure Compiler 문서에 따르면 아무 것도 반환되지 않으면 @return 주석을 생략해야합니다.

반환 값이 없으면 @return 태그를 사용하지 마십시오.

출처 : https://developers.google.com/closure/compiler/docs/js-for-compiler#tags

jsdoc- 툴킷

그러나 추가 설명서에는 returnType 및 returnDescription이 선택적 매개 변수라고도 나와 있습니다.

returnType-선택 사항 : 반환 값의 유형입니다.

returnDescription-선택 사항 : 추가 설명.

출처 : https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns

요약

반환 주석을 생략하거나 매개 변수없이 포함 할 수 있습니다.


10
이 답변은 실제로 받아 들여진 답변보다 낫습니다. 함수가 결과를 반환하지 않는 경우, undefined이것이 이미 자바 스크립트에 암시 적이며 문서를 읽는 사람에게 혼란을 줄 수 있으므로 반환한다고 말해서는 안됩니다 .
Lucio Paiva 2014

2
아니요, 동의하지 않으며 이것은 좋은 생각이 아니라고 말합니다. 누락 된 것이있는 경우 의도적 인 것인지 아닌지 알 수 없습니다. undefined자신의 의도를 명시하도록 강요 할 때에도 반환 유형에 대해 명시 적으로 표시 하고 나중에 읽을 때도 좋습니다. 명확히하기 위해 쓸모없는 JS 문을 포함해야한다고 말하는 것이 아니라 항상 JSDoc @returns문을 포함해야한다고 말하는 것입니다 (나는 쓸모없는 코드에 반대하지만 "쓸모없는"주석에는 반대하지 않습니다).
Mörre

IMO는 함수 나 메소드가 다른 값을 반환 할 수있는 경우 undefined 반환 유형을 지정하는 것이 합리적입니다.이 경우 다음과 같은 결과가 나타납니다.@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
GrayedFox

19

그들이 사용하는 ESlint 문서 살펴보기 @returns {void}

출처 : http://eslint.org/docs/rules/valid-jsdoc

@returns특정 프로젝트에 대한 코드를 푸시하기 위해 테스트를 통과 하기 위해 각 함수에 를 제공해야하므로 제 경우에는 이것이 필요합니다.


1

아무것도 반환되지 않는다고 큰 소리로 말해야하는 경우 자유 형식 설명으로 말할 수 있습니다 . 이는 사용자가 무언가가 반환 될 것으로 예상 할 수있는 상황을 명확히하는 데 유용합니다. 물론 함수와 매개 변수의 적절한 이름을 지정하는 것만으로도 예상되는 반환 유형이 명확 해지지 만 항상 가능한 것은 아닙니다.

/**
 * This is a funny function. Returns nothing.
 * @param {string} a joke.
 */
var funny = function (joke) {
  console.log(joke);
};
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.