ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Javascript] JSDoc
    javascript 2022. 10. 26. 11:58

    코딩 애플 유튜브 영상을 보던 중 몰랐던 주석 작성 방법이 있어 기록해두고자 한다.

     

    [해당 유튜브 영상]

     


    이제껏 나는 js에서 주석 작성 시 vscode 단축키인 Ctrl + / 를 통해 주석을 작성했다.

    // 주석

     

    그런데 코딩애플이 소개해주는 주석 방식은 매우 유용한 기능을 제공한다.

     

    1. JSDoc

    (1) 작성 방법

    주석 작성 방법은 아래와 같다.

    /** 주석 /

     

    예를 들기 위해 아래와 같이 함수 위에 해당 함수에 대한 설명 주석을 작성하면

    /** 햄버거 버튼 클릭 시 실행  */
    function onClickHamBtn(e){
        e.preventDefault();
        navi.classList.toggle('active');
        header.classList.toggle('active');
    }
    
    onClickHamBtn();

    아래와 같이 함수 호출 시 마우스를 함수에 올리면 해당 설명 주석이 뜨게 되며 우리는 이 함수에 대해 복기하고 힌트를 얻을 수 있게 된다.

     

    (2) Type 명시

    더 구체적인 설명을 위해 파라미터를 받는 함수를 생성하고 이 함수 위에 /**를 작성하고 엔터를 쳐보자.

     

    그럼 아래와 같이 파라미터에 대한 주석도 작성할 수 있게 된다.

    /**
     * 
     * @param name 
     * @param age 
     * @returns 
     */
    function Hello(name, age) {
        return name + age
    }

     

    각 파라미터에 대한 주석권장하는 파라미터 Type을 작성하고 

    /**
     * 
     * @param {string} name 사람 이름
     * @param {number} age 사람 나이
     * @returns 두개를 합쳐서 문자로 return
     */
    function Hello(name, age) {
        return name + age
    }

     

    아까와 같이 함수 호출 시 함수에 마우스를 올리면 우리가 파라미터에 대해 작성한 주석도 보여지게 된다.

     

    이렇게 Type을 명시해줬을 때 보는 사람에게 힌트가 된다는 것 외에도 좋은 점이 있는데 각 파라미터에 대한 Type 정보를 컴퓨터에게 알려줬기에 각 파라미터에 맞는 자동완성도 가능해진다.

     

    (3) @version / @see

    이 외에도 추가적으로 작성할 수 있는 정보가 있는데

    라이브러리를 사용할 경우 해당 라이브러리의 버전 정보참고 자료 url 첨부까지 가능하다.

    /**
     * 
     * @param {string} name 사람 이름
     * @param {number} age 사람 나이
     * @returns 두개를 합쳐서 문자로 return
     * @version 1.3.1
     * @see https://www.youtube.com/watch?v=ORmnc-hLrYs&list=PLlxKkQWUbQMeFOwNl69MtnC1ZDmNSxeyP&index=1
     */
    function Hello(name, age) {
        return name + age
    }

     

    (4) @readonly

    readonly를 작성하면 강제성은 없지만 보는 사람에게 이 부분은 수정하지 말라는 메시지도 전달할 수 있다.

    /**
     * @readonly
     */

     

    (5) @todo

    todo 작성도 가능하여 해당 기능에 대해 부가적으로 더 진행해야 할 내용에 대해서도 작성해둘 수 있다.

    /**
     * @todo 내일까지 기능 구현
     */

     

    (6) @deprecated

    해당 함수를 사용하지 말라는 의미로 deprecated를 사용할 수 있는데 이럴 경우 해당 함수를 사용하면 줄이 그어지게 된다.

    /**
     * @deprecated 이거 말고 다른 함수 쓰세요
     */

     

    2. JSDoc vs Typescript

    그럼 의문이 들 수도 있다. Type 명시같은 경우에는 Typescript 써도 되는 게 아닌가?

     

    맞는 말이다. 그러나 Typesciprt가 아닌 JSDoc을 사용하는 사람들의 의견으로는

    1. Typescript의 기준이 너무 엄하고
    2. ts 파일에서 js 파일로 변환 시 파일도 무거워지기 때문이라고 한다.

     

    그저 프로젝트의 상황과 특성에 맞게 적절한 방식을 택하면 될 것 같다.

    'javascript' 카테고리의 다른 글

    [Javascript] element.style VS getComputedStyle  (0) 2024.03.04
    [Javascript] insertAdjacentHTML  (0) 2023.01.30
    [Javascript] 객체와 불변성(Immutability)  (0) 2022.10.26
    [Javascript] 객체  (0) 2022.10.25
    [Javascript] 단축평가  (0) 2022.10.25
Designed by Tistory.