此变量的 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!"