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