此变量的 typedef 不会生成警告

typedef of this variable doesn't produce warning

本文关键字:警告 变量 typedef      更新时间:2023-09-26

如果为一个数字分配了一个字符串,我想为它生成一个警告。 所以,我认为闭包的类型定义可能会为我做到这一点。 我尝试了以下方法 -

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

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

在闭包编译器服务中将优化调高为"高级"以捕获这些警告。对于您的示例,您仍然不会看到任何内容(好吧,您将看到一些,但不是您所期望的),因为 typedefs 用于定义自定义类型。此外,您需要注释构造函数。在高级模式下运行以下示例,您将看到警告。我不会为像数字这样简单的东西制作 typedef,而是只使用 @type ,但这个例子是为了向您展示 typedef 的正确用法。

/** @typedef {number} */
var customType;
/** @constructor */
var Widget = function()
{
  /** @type {customType} */
  this.size = null;
};
new Widget().size = "kaboom!"