Google闭包编译器中的JSC_TYPE_MISMATCH警告

JSC_TYPE_MISMATCH warning in Google Closure Compiler

本文关键字:TYPE MISMATCH 警告 JSC 闭包 编译器 Google      更新时间:2023-09-26

我试图使用谷歌闭包编译器,但在这段代码:

/**
 *
 * @constructor
 * @suppress {missingProperties}
 * @param {string} idOfTableContainer
 * @param {Array.<Object>} tableDataInJson
 */
function TableBuilder(idOfTableContainer, tableDataInJson) {
    "use strict";
    var idParser = new IdParser(idOfTableContainer, "row");
    /** @type {Array.<Object>} */
    var dataInJson = JSON.parse(JSON.stringify(tableDataInJson));
}

我得到这个警告:

JSC_TYPE_MISMATCH: initializing variable
found   : *
required: (Array<(Object|null)>|null) at line 14 character 18
    var dataInJson = JSON.parse(JSON.stringify(tableDataInJson));
                  ^

我不明白这是什么意思:

found   : *

*代表"any"类型。警告说,就Closure所知,JSON.parse返回"任意"类型的结果,Closure不能确保这将与你在dataInJson上设置的类型声明相匹配。