Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此变量的typedef不为';不要发出警告_Javascript_Google Closure Compiler_Google Closure - Fatal编程技术网

Javascript 此变量的typedef不为';不要发出警告

Javascript 此变量的typedef不为';不要发出警告,javascript,google-closure-compiler,google-closure,Javascript,Google Closure Compiler,Google Closure,我想为一个数字生成一个警告,如果给它分配了一个字符串。所以,我想typedef的闭包可以帮我做到这一点。我尝试了以下方法- var Widget = function() { /** @typedef {number} */ this.size = null; }; new Widget().size = "kaboom!" 当我使用编译它时,它不会抛出警告或错误。我做错了什么?和/或我应该使用什么其他工具?在闭包编译器服务中将优化设置为“高级”,以捕获这些警

我想为一个数字生成一个警告,如果给它分配了一个字符串。所以,我想typedef的闭包可以帮我做到这一点。我尝试了以下方法-

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

  new Widget().size = "kaboom!"

当我使用编译它时,它不会抛出警告或错误。我做错了什么?和/或我应该使用什么其他工具?

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

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

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

new Widget().size = "kaboom!"