2016-09-29 5 views
1

Google의 클로저 컴파일러로 ExtJS 6.2.0을 컴파일하려고합니다. 상기에 extjs 소스 코드에 다음과 같은 주석이있다 :Google 클로저 컴파일러가 형식 주석을 인식하지 못합니다.

* @param {Ext.data.TreeModel[]} records An array of records.

폐쇄 오류가 밖으로은 주석의 유형을 인식하지 않는 한. 오류는 다음과 같이 표시됩니다.

extjs-6.2.0/build/ext-all-debug.js:248792: ERROR - Bad type annotation. expecting a variable name in a @param tag. See https://github.com/google/closure-compiler/wiki/Bad-Type-Annotation for more information. 
    * @param {Ext.data.TreeModel[]} data.records An Array of Models representing the 

제공된 URL에 솔루션이 표시되지 않을 수도 있습니다. ExtJS에는 컴파일러가 문제가 있다고 생각하는 많은 종류가 있습니다.

여기에 간단한 해결 방법이 있습니까? 컴파일에서 --jscomp_error checkTypes을 제거 할 수는 있지만 적절한 방법으로 수행하고 싶습니다.

답변

2

표시되는 특수 효과는 Google 클로저 컴파일러와 호환되지 않습니다. 대신 내가 주석 Ext.data.TreeModel[]이 JSDoc와 호환 때문에 그들이 JSDoc을 사용하는 의심

* @param {Array<Ext.data.TreeModel>} records An array of records. 

을 기록 할 것 http://usejsdoc.org/tags-type.html를 참조하십시오.

클로저 컴파일러는 JSDoc 구문으로 시작했지만 두 개는 지난 5 년 동안 약간 분기되었습니다. 클로저 컴파일러 어노테이션은 여기에 설명되어 있습니다 : https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler (하단의 유형 표현식으로 스크롤).

클로저 컴파일러와 호환되도록 몇 가지 주석을 변경하는 것이 가능할 수 있습니다. 그러나이 코드가 따르지 않을 ADVANCED 모드의 컴파일러에서 사용되는 코드가 어떻게 작동하는지에 대한 가정이 있습니다. a recent thread about a similar question을 참조하십시오.

+0

연결중인 스레드가 유효한 링크로 보이지 않습니다. – randombits

+0

링크가 수정되었으므로 지금 사용해보십시오. – owler

관련 문제