如何使用Closure Compiler在函数中定义“this”的类型

时间:2018-05-10 22:25:01

标签: javascript this google-closure-compiler

我的Closure编译器对我的项目的目标是实现100%的类型,但我正在努力使用一个看起来像这样的简单jQuery模式:

$Controls.on('change input', /** function(this:Element) */ function () {
    $(this).removeClass('is-invalid').next('.invalid-feedback').remove();
});

无论有没有评论/** function(this:Element) */,我都会收到以下错误:

js/quote.js:61: WARNING - could not determine the type of this expression
        $(this).removeClass('is-invalid').next('.invalid-feedback').remove();
          ^^^^

我以为我在“this类型”部分的Github Wiki titled 'Types in the Closure Type System'中找到了答案,但这似乎并没有按我认为的那样做。

如何为Closure Compiler指定this的类型?

1 个答案:

答案 0 :(得分:1)

感谢@RandyCasburn的评论

/** function(this:Element) */应更改为** @this {Element} */,以便将函数上下文的类型转换为Element

我认为应该使用/** function(this:Element) */来定义具有元素上下文的函数的参数类型