此变量的 typedef 不产生警告
typedef of this variable doesn't produce warning
如果为某个数字分配了一个字符串,我想对其发出警告。所以,我认为 Closure 的 typedef 可能会为我做这件事。我尝试了以下 -
var Widget = function()
{
/** @typedef {number} */
this.size = null;
};
new Widget().size = "kaboom!"
当我使用 http://closure-compiler.appspot.com/home 编译它时,它不会抛出警告或错误。我究竟做错了什么? And/or 我还应该使用什么其他工具?
在闭包编译器服务中将优化提高到高级以捕获这些警告。对于您的示例,您仍然看不到任何内容(好吧,您会看到一些,但不是您所期望的),因为 typedef 用于定义自定义类型。此外,您需要注释您的构造函数。 运行 下面的例子在高级模式下,你会看到你的警告。我不会为像数字这样的简单事物制作 typedef,而是使用 @type
,但这个例子是为了向您展示 typedef 的正确用法。
/** @typedef {number} */
var customType;
/** @constructor */
var Widget = function()
{
/** @type {customType} */
this.size = null;
};
new Widget().size = "kaboom!"
如果为某个数字分配了一个字符串,我想对其发出警告。所以,我认为 Closure 的 typedef 可能会为我做这件事。我尝试了以下 -
var Widget = function()
{
/** @typedef {number} */
this.size = null;
};
new Widget().size = "kaboom!"
当我使用 http://closure-compiler.appspot.com/home 编译它时,它不会抛出警告或错误。我究竟做错了什么? And/or 我还应该使用什么其他工具?
在闭包编译器服务中将优化提高到高级以捕获这些警告。对于您的示例,您仍然看不到任何内容(好吧,您会看到一些,但不是您所期望的),因为 typedef 用于定义自定义类型。此外,您需要注释您的构造函数。 运行 下面的例子在高级模式下,你会看到你的警告。我不会为像数字这样的简单事物制作 typedef,而是使用 @type
,但这个例子是为了向您展示 typedef 的正确用法。
/** @typedef {number} */
var customType;
/** @constructor */
var Widget = function()
{
/** @type {customType} */
this.size = null;
};
new Widget().size = "kaboom!"