此变量的typedef不会产生警告

时间:2015-03-06 19:34:08

标签: javascript google-closure-compiler google-closure

如果为其分配字符串,我想为数字生成警告。所以,我认为Closure的typedef可能会为我做这件事。我尝试了以下内容 -

  var Widget = function()
  {
    /** @typedef {number} */
    this.size = null;
  };

  new Widget().size = "kaboom!"

当我使用http://closure-compiler.appspot.com/home编译它时,它不会发出警告或错误。我究竟做错了什么?和/或我应该使用什么其他工具?

1 个答案:

答案 0 :(得分:2)

在闭包编译器服务中将优化更改为Advanced以捕获这些警告。你仍然不会看到任何你的例子(好吧,你会看到一些,但不是你期望的),因为typedef用于定义自定义类型。此外,您需要注释您的构造函数。在高级模式下运行以下示例,您将看到警告。我没有为数字之类的简单事物创建typedef,而是使用@type,但这个例子是为了向你展示typedef的正确用法。

/** @typedef {number} */
var customType;

/** @constructor */
var Widget = function()
{
  /** @type {customType} */
  this.size = null;
};

new Widget().size = "kaboom!"