2016-11-27 12 views
1

사용자가 new없이 호출하도록하려는 생성자 함수 Foo이 있습니다. 예를 들어, 정의 Foo에 대한 새없이 생성자 함수 문서화

const myFoo = Foo('bar'); 

,

function Foo(bar) { 
    if(!this) { return new Foo(bar); } 
    foo.bar = bar; 
    return this; 
} 

어떻게 JSDoc3로이 문서합니까? @class (또는 @constructor)을 기본 템플릿과 함께 사용하면 출력에 항상 new Foo(bar)이 사용됩니다. 내가 Foo을 단지 @function으로 문서화한다면, 그 인스턴스 메소드 나 속성은 나타나지 않고 함수 자체 만 나타난다.

클래스 정의와 생성자 함수를 분리하는 방법이 있습니까? 또는 생성자에 new을 지정하지 않도록 출력을 구성 하시겠습니까? @lends@constructs은 비슷한 요구를 처리하지만 객체 리터럴에 정의 된 생성자 및 인스턴스 메서드에 대해서는 제외됩니다.

답변

0

@hideconstructor을 사용할 수 있습니까? 같은 예 :

/** 일부 설명 @class @hideconstructor */ 푸 함수() ...

그럼에도 불구하고이 jsdoc 통해 타이프로 입력 유효성 검사에 실패한다. 이 경우 사용자가 new을 사용하지 못하게하려면 ClassFoo@hideconstructor으로 분류하고 Foo 함수를 별도로 @returns {ClassFoo}

으로 문서화해야합니다.