2015-05-30 2 views
0

Я пытался использовать Google Closure Compiler, но в этом коде:JSC_TYPE_MISMATCH предупреждение в Google Closure Compiler

/** 
* 
* @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 : * 
+1

'*' обозначает «любой» тип. Похоже, что, насколько известно Closure, 'JSON.parse' возвращает результат« любого »типа, а Closure не может гарантировать, что это будет соответствовать объявлению типа, которое вы задали на' dataInJson'. – DCoder

+0

Спасибо, вы можете разместить его в качестве ответа. – Matt

ответ

2

В * означает "любой" типа. Предупреждение говорит, что, насколько известно Closure, JSON.parse возвращает результат «любого» типа, и Closure не может гарантировать, что это будет соответствовать объявлению типа, которое вы установили на dataInJson.

Смежные вопросы