[javascript] Webstorm에서 경고하는 수많은 미해결 변수와 싸우는 방법은 무엇입니까?

서버에서 데이터를 가져 오는 함수가 있습니다.

function getData(data){
    console.log(data.someVar);
}

Webstorm은 someVar-가 해결되지 않은 변수 라고 말합니다 . 그러한 경고를 어떻게 제거 할 수 있습니까?

몇 가지 옵션이 있습니다.

  • ide 설정에서 경고를 억제합니다.
  • 필드 ( details )가 있는 json 소스 파일을 추가하십시오 .
  • 배열과 유사한 구문 사용 : data['some_unres_var'];

또한 Webstorm은 “데이터”(와 같은 주석 추가)에 대한 네임 스페이스를 /** @namespace data.some_unres_var*/생성하거나, 이러한 필드를 생성하거나, 이름을 변경하도록 제안 합니다.



답변

JSDoc 사용 :

/**
 * @param {{some_unres_var:string}} data
 */
function getData(data){
    console.log(data.some_unres_var);
}


답변

JSDoc 개체. 그런 다음 그 구성원.

/**
 * @param data          Information about the object.
 * @param data.member   Information about the object's members.
 */
function getData(data){
    console.log(data.member);
}
  • @property 지역 변수 (매개 변수가 아님)
  • PyCharm에서 테스트되었습니다. @Nicholi는 Webstorm에서 작동하는지 확인합니다.
  • {{ member:type }}구문 안드레아스 장고 템플릿과 충돌 할 수 있습니다 제안했다.
  • @param wiki를 인용 한 Jonny Buchanan의 답변 덕분 입니다 .

객체 배열 을 문서화하려면 []JSDoc이 제안하는 대로 대괄호를 사용하십시오 .

/**
 * @param data
 * @param data.array_member[].foo
 */


답변

다른 모든 답변은 일반적인 경우에 올바르지 않습니다. data매개 변수로 가져 오지 않으면 어떻게 됩니까? 그러면 JSDoc이 없습니다.

function niceApiCall(parameters) {
  const result = await ...  // HTTP call to the API here
  for (const e of result.entries) {
    .. // decorate each entry in the result
  }
  return result;
}

WebStorm은 “result.entries”가 확인되지 않은 변수 (필드)임을 경고합니다.

일반적인 해결책은 @namespace선언 을 추가하는 것입니다 .

function niceApiCall(parameters) {
  /** @namespace result.entries **/
  const result = await ...  // HTTP call to the API here
  for (const e of result.entries) {
    .. // decorate each entry in the result
  }
  return result;
}


답변

http://devnet.jetbrains.com/message/5366907에 작성된대로 json 리터럴을 반환하는 익명 함수 표현식과 함께 더미 js 파일을 사용하는 것이 해결책이 될 수 있습니다. 또한이 json 값을 보유 할 가짜 변수를 만들고이 var를 @param 주석의 값으로 사용하여 WebStorm이 실제 유형을 알 수 있도록 할 수도 있습니다. 처럼:

var jsontext = {"some_unres_var":"val"};
/** @param {jsontext} data */
function getData(data){
    console.log(data.some_unres_var);
}

참조 http://devnet.jetbrains.com/message/5504337#5504337


답변

구조 분해 사용, 루크.

function getData(data){
    const {member} = data;
    console.log(member);
}


답변

WebStorm IDE에서 경고를 제거하려면 다음 검사 옵션을 선택 취소하면됩니다.

  • 해결되지 않은 자바 스크립트 함수
  • 해결되지 않은 자바 스크립트 변수

추신 . 이렇게하면 IDE에서 경고가 제거되지만 Webstorm과 같은 IDE에서 최고의 유틸리티 중 하나가 손실되어 코드의 품질이 저하 될 수 있기 때문에 이것이 최선의 아이디어라고 생각하지 않습니다.

그럼에도 불구하고 메뉴에서 따르고 싶다면 File > Settings > Editor > Inspections 자바 스크립트 경고를 비활성화 할 수 있습니다.

다음 그림과 같이 :

옵션 선택 취소


답변