Javascript 闭包编译器-错误的类型批注。未知类型(带外部)

Javascript 闭包编译器-错误的类型批注。未知类型(带外部),javascript,external,google-closure-compiler,Javascript,External,Google Closure Compiler,从基础开始。我正在使用JavaScript闭包编译器,得到了错误错误类型注释。未知类型VRPose我试图让函数返回一个{VRPose}。i、 e /** * @returns {VRPose} */ VRDisplay.prototype.getPose = function() {}; 我做了一件显而易见的事情,并试图定义VRPose,如: function VRPose() {}; 不幸的是,这不起作用;我也有同样的错误。我应该如何在闭包中定义类型/类?起初,我尝试了 goog.fo

从基础开始。我正在使用JavaScript闭包编译器,得到了错误
错误类型注释。未知类型VRPose
我试图让函数返回一个
{VRPose}
。i、 e

/**
 * @returns {VRPose}
 */
VRDisplay.prototype.getPose = function() {};
我做了一件显而易见的事情,并试图定义VRPose,如:

function VRPose() {};
不幸的是,这不起作用;我也有同样的错误。我应该如何在闭包中定义类型/类?

起初,我尝试了

goog.forwardDeclare('VRPose');
这实际上效果很好。也许这是定义外部的正确行为。但这似乎是在回避问题

我四处看了看,发现我丢失了@constructor标记。下面是我现在得到的:

/** @constructor */
function VRPose() {};
我真的不确定这两者之间的区别是什么,所以如果有人想回答这个问题并提供更好的解释,我很乐意接受

起初,我试过

goog.forwardDeclare('VRPose');
这实际上效果很好。也许这是定义外部的正确行为。但这似乎是在回避问题

我四处看了看,发现我丢失了@constructor标记。下面是我现在得到的:

/** @constructor */
function VRPose() {};

我真的不确定这两者之间的区别是什么,所以如果有人想回答这个问题并提供更好的解释,我很乐意接受

如果您从未打算在代码中调用
new vrpross()
,则可以使用
@interface
而不是
@constructor
。如果您从未打算在代码中调用
new vrpross()
,则可以使用
@interface
而不是
@constructor