0

Google 클로저 컴파일러가있는 함수 개체에도 속성이있는 생성자 함수의 올바른 형식은 무엇입니까?클로저 컴파일러 외부 정적 필드 사용 함수에 대한 Exxs

다음은 Closure compiler debugger에서 실행 가능한 첫 번째 시도입니다.

응용 프로그램 코드

const Mocha = /** @type {!MochaJS} */ (require('mocha')); 

const mochaInstance = new Mocha(); 
const Suite = Mocha.Suite; 

폐쇄 Externs

/** @constructor */ 
const MochaJS = function() {}; 

/** @type {!MochaJS.Suite} */ 
MochaJS.prototype.Suite; 

/** @record */ 
MochaJS.Suite = function() {}; 

답변

1

폐쇄 컴파일러가 아니라 외부 모듈 정의를 처리하지 못하기 때문에 어려움이 온다. 또한 생성자/네임 스페이스를 인스턴스와 혼동하지 마십시오. 그들은 다르다.

응용 프로그램

// A constructor type for Mocha 
const Mocha = /** @type {!function(new:MochaJS)} */ (require('mocha')); 
const mochaInstance = new Mocha(); 

const Suite = /** @type {!MochaJSSuite} */ (Mocha.Suite); 

Externs

/** @constructor */ 
const MochaJS = function() {}; 

/** @function */ 
MochaJSSuite = function() {}; 

이이 유형의 단지 대략적인 추측입니다 - 나는 사냥을 이동하지 않고 externs 쓰기에 충분 모카에 익숙하지 않은 해요 문서 참조. 잘하면 그것은 올바른 방향으로 당신을 가리킬 것입니다.

관련 문제