我有以下代码: (没有编译一切正常)
var audio = new Audio("audio.ogg");
goog.events.listen(audio, 'timeupdate', function(e){
ERROR
actual parameter 1 of goog.events.listen does not match formal parameter
>> found : Audio
>> required: (EventTarget|goog.events.Listenable|null)
>> goog.events.listen(this.audio.singing, 'timeupdate', function(e){
我的外星人
/**
* @param {string=} src
* @constructor
*/
var Audio = function(src) {};
Audio.prototype.play = function() {};
我如何编译这样的内部事件? 谢谢
答案 0 :(得分:1)
你当然应该尝试增加你的外在定义:
goog.require('goog.events.EventTarget');
/**
* @param {string=} src
* @constructor
* @extends {EventTarget}
*/
var Audio = function(src) {};
Audio.prototype.play = function() {};
事实证明,您的问题已在Closure Compiler代码库中解决,然后该修复程序被还原。请参阅the changelog here。
我在下面重现该提交的相关部分:
/**
* @param {string=} src address of the media resource (a URL)
* @constructor
* @extends {HTMLAudioElement}
* @see http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#the-audio-element
*/
var Audio = function(src) {};
答案 1 :(得分:0)
Closure编译器提供了应该添加到externs列表
的externshttps://github.com/google/closure-compiler/wiki/Externs-For-Common-Libraries
带有Audio API的人称为html5或类似的东西