-->

如何在关闭编译实习医生一个类型没有一个构造函数(How to have a type in Clos

2019-10-17 08:41发布

我试图让对谷歌关闭编译实习医生为没有构造类型。

我曾尝试以下,但它给了我一个Bad type annotation. Unknown type WindowsMediaActiveX.Cdrom 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控件播放媒体的媒体播放器。 我也使用了谷歌关闭编译器和库。 我需要定义实习医生的播放器正常工作,但没有通过ActiveX控件使用的类型有构造函数。 他们都是通过其他方式或通过创建的HTML对象创建的。 我应该如何在EXTERN文件中定义呢? 谢谢你的帮助。

Answer 1:

此模式的典型注解是:

/** @const */
var WindowsMediaActiveX = {};

/**
 * Methods and properties for accessing a CD or DVD in its drive.
 * @constructor
 * @private
 */
WindowsMediaActiveX.Cdrom=function(){};

@private标注是构造并不意味着可直接调用的指示。 然而,当警告组accessControls启用(与VERBOSE警告)编译器将只报告类型的直接实例化一个警告。

编辑:答案更新到需要添加@const批注的命名空间。 访问控制注释将被忽略,否则。



文章来源: How to have a type in Closure Compiler externs without a constructor