Я помещаю это в файл externs:
/** @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)};
Итак, он по-прежнему переименован в "английский" на "а" и т.д. Как вы это прекратите? Почему он думает, что может переименовать что-то, что является "extern".
Rob
Последующий вопрос
Ответ Джона привел к другому вопросу: Могу ли я сообщить компилятору Closure только для определенных типов прекратить переименование свойств?