수퍼 클래스의 메소드를 재정의하고 Google 클로저 컴파일러를 사용하여 코드를 컴파일하려고하지만 잘못된 유형에 대한 경고가 표시됩니다.@ Override a method, Google Closure Compiler
/Users/Jan/dev/cro/public/app/js/LibraryController.js:55: WARNING -
mismatch of the setState property type and the type of the property it overrides
from superclass app.Controller
original: function (this:app.Controller, Object): undefined
override: function (this:app.LibraryController, Object, string, string): undefined
app.LibraryController.prototype.setState = function (state, section, article) {
위에서 알 수 있듯이 super 메소드에서 허용하는 인수 유형을 변경하거나 리턴 된 유형을 변경하지 않습니다.
누구든지이 문제를 해결하는 방법을 알고 있습니까? 감사.
명확히하기 위해, 다음은 개별적인 방법의 정의입니다.
고마워요! 나는 "하위 클래스는 기본 클래스를 대체 할 수 있어야합니다. 즉, 기본 클래스를 사용할 수있는 모든 위치에서 하위 클래스를 사용할 수 있어야합니다." ** ** 추가 된 인수를 옵션 **으로 만들면 모든 것이 OK입니다.) –
맞음 - 메모리에서 씁니다. 좀 더 정확하고 완벽하게 답변을 업데이트하겠습니다. –
나는이 기사를 좋아합니다 : http://closuretools.blogspot.com/2012/06/subtyping-functions-without-poking-your.html – John