Я помещаю это во внешний файл:
/** @typedef {{english: string, spanish: string}} */
var SpanishNoun;
Затем я есть javascript:
/**
* @param {SpanishNoun} n
*/
exp1.processData3 = function (n) {
console.log("pd3:", n.english, n.spanish, n['english'], n['spanish']);
}
Который компилируется в:
function(a){console.log("pd3:",a.a,a.c,a.english,a.spanish)};
Так что он по-прежнему переименовал 'english' в 'a' и т. д. Как это остановить? Почему он думает, что может переименовать что-то, что является "extern".
Роб
Ответ Джона привел к другому вопросу: Могу ли я сказать компилятору Closure прекратить переименование свойств только для определенных типов?