我正在尝试为没有构造函数的类型为 Google Closure Compiler 制作 externs。
我尝试了以下方法,但它给了我一个Bad type annotation. Unknown type WindowsMediaActiveX.Cdrom
错误,因为没有任何东西告诉编译器这WindowsMediaActiveX.Cdrom
是一种类型,而不仅仅是方法/属性的集合。
/**
* @fileoverview Declares externs for the Windows media player ActiveX control.
* @author Joshua Dwire
* @suppress {duplicate}
*/
var WindowsMediaActiveX={};
/**
* Methods and properties for accessing a CD or DVD in its drive.
*/
WindowsMediaActiveX.Cdrom={};
/**
* Retrieves the CD or DVD drive letter.
* @type {string}
* @readonly
*/
WindowsMediaActiveX.Cdrom.prototype.driveSpecifier;
/**
* Methods and properties for accessing a collection of CD or DVD drives.
*/
WindowsMediaActiveX.CdromCollection={};
/**
* Retrieves the Cdrom object associated with a particular drive letter.
* @param {string} driveSpecifier String containing the drive letter followed by a colon (":") character.
* @returns {WindowsMediaActiveX.Cdrom}
*/
WindowsMediaActiveX.CdromCollection.prototype.getByDriveSpecifier=function(driveSpecifier){};
我知道我可以改变:
/**
* Methods and properties for accessing a CD or DVD in its drive.
*/
WindowsMediaActiveX.Cdrom={};
到:
/**
* Methods and properties for accessing a CD or DVD in its drive.
* @constructor
*/
WindowsMediaActiveX.Cdrom=function(){};
但是如果我或其他人尝试使用new WindowsMediaActiveX.Cdrom()
. 关于如何定义这个的任何想法?
对于那些想要了解更多信息的人,我正在开发一个媒体播放器,它将使用 Windows Media ActiveX 控件来播放媒体。我也在使用 Google Closure 编译器和库。我需要为播放器定义 externs 才能正常工作,但 ActiveX 控件使用的所有类型都没有构造函数。它们都是通过其他方法或通过在 html 中创建对象来创建的。我应该如何在 extern 文件中定义它?谢谢你的帮助。